我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL学习笔记(一):shell脚本安装配置mysql

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL学习笔记(一):shell脚本安装配置mysql

该脚本用于MySQL二进制安装,仅限于最初安装,如服务器已安装配置有mysql,不建议使用该脚本。

操作系统版本:CentOS 7

数据库版本:MySQL 5.7.22


#!/bin/bash
cnf_file="/etc/my.cnf"
install_log="mysql_install.log"
dbfile="mysql-5.7.22-el7-x86_64.tar.gz"
ext_files="mysql-5.7.22-el7-x86_64"
bin_path="/usr/local/mysql"
pid_path="/data/mysql"
data_path="/data/mysql/data"
errlog_path="/data/mysql/logs/"
binlog_path="/data/mysql/binlog/"
slowlog_path="/data/mysql/slow_logs"
socket="/data/mysql/mysql3306.sock"
port=3306
serverid=330601
group="mysql"
user="mysql"
if [ ! -f "$dbfile" ];then
echo "$dbfile not exists"  > $install_log
else
tar -zxvf $dbfile > $install_log
if [ $? -eq 0 ];then
echo "$dbfile Extract Success" >> $install_log
else
echo "$dbfile Extract Failed"  >> $install_log
exit 0
fi
fi
if [ ! -d "$bin_path" ];then
echo "moving $ext_files to $bin_path ......"  >> $install_log
mv $ext_files $bin_path
echo "move $ext_files to $bin_path ......[done]" >> $install_log
echo "creating $pid_path ......" >> $install_log
if [ ! -d "$pid_path" ];then
mkdir -p $pid_path
echo "create $pid_path ......[done]" >> $install_log
else
echo "create $pid_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $data_path ......" >> $install_log
if [ ! -d "$data_path" ];then
mkdir -p $data_path
echo "create $data_path ......[done]" >> $install_log
else
echo "create $data_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $errlog_path ......" >> $install_log
if [ ! -d "$errlog_path" ];then
mkdir -p $errlog_path
echo "create $errlog_path ......[done]" >> $install_log
else
echo "create $errlog_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $binlog_path ......" >> $install_log
if [ ! -d "$binlog_path" ];then
mkdir -p $binlog_path
echo "create $binlog_path ......[done]" >> $install_log
else
echo "create $binlog_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $slowlog_path ......" >> $install_log
if [ ! -d "$slowlog_path" ];then
mkdir -p $slowlog_path
echo "create $slowlog_path ......[done]" >> $install_log
else
echo "create $slowlog_path ......[failed]" >> $install_log
exit 0
fi
else
echo "$bin_path already exists" >> $install_log
exit 0
fi
#create group if not exists
egrep "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    echo "group $group not exists" >> $install_log
echo "creating group $group ......" >> $install_log
groupadd $group
echo "creat group $group ......[done]" >> $install_log
else
echo "group $group already exists ......[skip]" >> $install_log
fi
#create user if not exists
egrep "^$user" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    echo "user $user not exists" >> $install_log
echo "creating user $user ......" >> $install_log
useradd -g $group $user
echo "creat user $user ......[done]" >> $install_log
else
echo "user $user already exists ......[skip]" >> $install_log
fi
#Modify directory permissions
chown -R $user.$group $bin_path
chown -R $user.$group $pid_path
#Add environment variables
result_grep_path="$( grep   "${bin_path}/bin" /etc/profile  )" || result_grep_path=""
if [ -z "${result_grep_path}" ]
then
echo "export PATH=\$PATH:${bin_path}/bin:${bin_path}/lib" >> /etc/profile ;
source /etc/profile
else
echo "${bin_path}/bin already exists in /etc/profile" >> $install_log
fi
#mysql cnf
if [ -f $cnf_file ];then
echo "$cnf_file exists"
echo "move $cnf_file to $cnf_file`date '+%Y%m%d%H%M%S'` "  >> $install_log
mv $cnf_file $cnf_file`date "+%Y%m%d%H%M%S"`
fi
cat > /etc/my.cnf << EOF
[mysql]
socket=${socket}
[mysqld]
server_id=${serverid}
user=mysql
socket=${socket}
port=${port}
basedir=${bin_path}
datadir=${data_path}
log_bin=${binlog_path}/mysql01_bin.log
log_error=${errlog_path}/mysql_err.log
slow_query_log = on 
long_query_time = 2  
slow_query_log_file = ${slowlog_path}/mysql_slow.log
EOF
mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize 
if [ $? -eq 0 ];
then
echo "mysql initialize success ">> $install_log
else
echo "mysql initialize failed ">> $install_log
exit 0
fi
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
chkconfig --list mysql.server >> $install_log
sudo -u mysql service mysql.server start 
if [ $? -eq 0 ];
then
echo "mysql install && start success ">> $install_log
else
echo "mysql install or start failed">> $install_log
fi
exit 0


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL学习笔记(一):shell脚本安装配置mysql

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL学习笔记(1):安装

本文更新于2020-05-04。目录安装使用apt-get安装使用dpkg安装使用rpm安装卸载MariaDB安装MySQL初始化密码修改密码认证插件服务启动、停止、重启、状态查看Linux下的文件布局默认数据库安装在Windows下可以采用noinstall
MySQL学习笔记(1):安装
2020-09-26

MySQL主从配置学习笔记

● 本打算买个云数据,为我的新项目做点安全保障。阿里云,腾讯云转了一圈,两个字太贵。不就数据有备份吗,既然这样那我不如自己来做备份。 ● 家里有2个树莓派直接把mysql备份到他们上就好了,网上有教程,这就开整。在segmentfault
2022-05-12

MySQL学习笔记(2):配置和状态

本文更新于2020-05-30,使用MySQL 5.7,操作系统为Deepin 15.4。配置文件Windows下配置文件的读取顺序:%WINDIR%/my.iniC:/my.cnfINSTALL_DIR/my.ini,INSTALL_DIR为实际的安装目录-
MySQL学习笔记(2):配置和状态
2017-03-22

MySQL一键安装Shell脚本的实现

本文主要介绍了MySQL一键安装Shell脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-08

Node.js 学习笔记之简介、安装及配置

简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的
2022-06-04

编程热搜

目录