阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下全自动编译安装MySQL

132次阅读
没有评论

共计 2384 个字符,预计需要花费 6 分钟才能阅读完成。

MySQL 的编译安装,在 Linux 下 MySQL 的编译安装图文详述 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错。生产上一般都是先在本地测试环境进行自动化测试,如果 ok,那么就在生产上进行自动化安装,省事,省力,安全。

本文环境:

CentOS6.5×64 ,mysql 版本:mysql-5.6.26。采用自动化编译安装。

相关准备工作:

熟知 sed 文本编译命令,expect 交互式脚本的使用。

提前将需要安装的 mysql 安装包放在 /root 下面,当然了,下载的过程也可以一并写在脚本中,为了节约时间,下载过程一般不会写在脚本中,而且好多生产环境是不能够连接外网的。

[root@xiaolyu76 ~]# ls

anaconda-ks.cfg  install.log install.log.syslog mysql-5.6.26.tar.gz  mysql_install_auto.sh

下面是我的脚本:mysql_install_auto.sh 的内容:

[root@xiaolyu76 ~]# cat mysql_install_auto.sh

#!/bin/bash
MYSQL_PASSWD=”123456″
yum remove  -y mysql mysql-server
yum install -y cmake    ncurses-devel
tar xf mysql-5.6.26.tar.gz -C /usr/local/src/
cd /usr/local/src/mysql-5.6.26
useradd -M -s /sbin/nologin mysql
cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_MYISAM_STORAGE_ENGINE=1\
 -DWITH_INNOBASE_STORAGE_ENGINE=1\
 -DWITH_MEMORY_STORAGE_ENGINE=1\
 -DWITH_READLINE=1\
 -DENABLED_LOCAL_INFILE=1\
 -DMYSQL_DATADIR=/usr/local/mysql/data \
 -DMYSQL-USER=mysql
make -j 4 && make install
cd && chown -R mysql:mysql /usr/local/mysql/
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sed  -i ‘s%^basedir=%basedir=/usr/local/mysql%’ /etc/init.d/mysqld
sed  -i ‘s%^datadir=%datadir=/usr/local/mysql/data%’ /etc/init.d/mysqld
chkconfig mysqld on
/usr/local/mysql/scripts/mysql_install_db \
 –defaults-file=/etc/my.cnf  \
 –basedir=/usr/local/mysql/  \
 –datadir=/usr/local/mysql/data/  \
 –user=mysql
ls /usr/local/mysql/data/
ln -s /usr/local/mysql/bin/* /bin/
service mysqld start
echo “now let’s begin mysql_secure_installation “
if [! -e /usr/bin/expect]
 then  yum install expect -y
fi
echo ‘#!/usr/bin/expect
set timeout 60
set password [lindex $argv 0]
spawn mysql_secure_installation
expect {
“enter for none” {send “\r”; exp_continue}
“Y/n” {send “Y\r” ; exp_continue}
“password” {send “$password\r”; exp_continue}
“Cleaning up” {send “\r”}
}
interact ‘ > mysql_secure_installation.exp
chmod +x mysql_secure_installation.exp
./mysql_secure_installation.exp $MYSQL_PASSWD

[root@xiaolyu76 ~]# sh  mysql_install_auto.sh    // 直接执行该脚本即可。

Linux 下全自动编译安装 MySQL

Linux 下全自动编译安装 MySQL

脚本是 shell 脚本,最后 mysql 数据库安全初始化的时候,生成一个 expect 的脚本:mysql_secure_installation.exp。

说明:为了增强脚本的整齐美观和可读性,去掉了很多 if 判断以及 echo $? 判断脚本是否执行成功。

mysql 编译安装中的相关命令和参数的说明在 Linux 下 MySQL 的编译安装图文详述 http://www.linuxidc.com/Linux/2017-06/144902.htm 已经有了详细说明,故本文不在赘述。

本文脚本经测试完全正确。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/145253.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2384字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中