Centos7中安装mysql8.0.22(安装脚本)

系统环境:Centos
mysql版本:mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz

安装脚本

#!/bin/bash

echo "install mysql"

#mysql安装包
mysql_src="mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz"

#mysql安装目录
target_path="/data"

if [ ! -d $target_path ];then 
mkdir -p $target_path 
fi

tar -zxvf $mysql_src -C $target_path
mv $target_path/mysql-8.0.22-linux-glibc2.12-x86_64 $target_path/mysql

echo "----creat /etc/my.cnf----"
#生成my.cnf文件

cat>>my.cnf<<EOF
[client]
port=3306
socket = /var/log/mysql/mysql.sock

[mysqld]
basedir=$target_path/mysql
datadir=$target_path/mysql/data
socket=/var/log/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/var/log/mysql/mysqld.pid
lower-case-table-names=1
log-bin=mysql-bin 
auto_increment_increment=1  
auto_increment_offset=1   
character-set-server=utf8
EOF

#将生成后的my.cnf文件覆盖/etc/my.cnf
`\cp -f my.cnf /etc/my.cnf`
`rm -rf my.cnf`

#创建/var/log/mysql/mysqld.log和/var/log/mysql/mysqld.pid文件,并修改权限
if [ ! -d "/var/log/mysql" ]; then
  mkdir -p /var/log/mysql
fi

echo " " >> /var/log/mysql/mysqld.log
echo " " >> /var/log/mysql/mysqld.pid
chmod -R 777 /var/log/mysql

#创建mysql用户组及用户
echo "----creat mysql group and user----"
egrep "^mysql" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    groupadd mysql
fi

id mysql >& /dev/null
if [ $? -ne 0 ]
then
    useradd -r -g mysql mysql
fi


#加入开机启动
echo "----Add boot----"
`\cp -f $target_path/mysql/support-files/mysql.server /etc/init.d/mysql`
#修改/etc/init.d/mysql文件(查找替换"basedir="和"datadir="两行(46/47)内容)
basedir=$target_path/mysql
datadir=$target_path/mysql/data
sed -i "46c basedir=$basedir" /etc/init.d/mysql
sed -i "47c datadir=$datadir" /etc/init.d/mysql
chmod 777 /etc/init.d/mysql
chkconfig --add mysql

#mysql初始化,初始化后生成初始密码
echo "----mysql initialization----"
$target_path/mysql/bin/mysqld --initialize --user=mysql --initialize --lower-case-table-names=1 --basedir=$target_path/mysql --datadir=$target_path/mysql/data --lc_messages_dir=$target_path/mysql/share --lc_messages=en_US


if [ $? -ne 0 ] 
then 
echo "----ERROR!!!----"
else 
#获取初始密码
sleep 5s
passwd_line=`sed -n "/.*A temporary password is generated/p" /var/log/mysql/mysqld.log`
echo "$passwd_line" >> sqlpwd.log
sql_pwd=`sed 's/.*A temporary password is generated for root@[^:]*: \(.*\)/\1/' sqlpwd.log`
echo "mysql initial password: $sql_pwd"
rm -rf sqlpwd.log

#将初始密码写入/etc/my.cnf [client]配置中(位于文件第2行),后面实现免密登录
#在第2行后面添加user和password配置
sed -i "2a user = root\npassword = $sql_pwd" /etc/my.cnf

#添加到环境变量
echo "----Configure environment variables----"

if [ -f /etc/profile ]; then 
	`echo "export MYSQL_HOME=$target_path/mysql" >> /etc/profile`
	`echo 'export PATH=$PATH:$MYSQL_HOME/bin' >> /etc/profile`
	`source /etc/profile`
fi

#启动mysql
echo "----start mysql----"
service mysql restart
echo "----ok----"
fi

#!/bin/bash

echo "----set passwd----"

target_path="/data"

#将mysql密码修改为:mysql123!
sqlpasswd="mysql123!"

$target_path/mysql/bin/mysql --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$sqlpasswd' PASSWORD EXPIRE NEVER;"
if [ $? -ne 0 ] 
then 
echo "ERROR"
else 
#修改/etc/my.cnf中的密码(密码位于第4行)
sed -i "4c password = mysql123!" /etc/my.cnf
#sed -n "4p" /etc/my.cnf
$target_path/mysql/bin/mysql -e "use mysql;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$sqlpasswd';update user set host = '%' where user='root';FLUSH PRIVILEGES;show databases;"

#sed -i '4d' /etc/my.cnf  #删除配置文件中的密码
echo "mysql install success"
fi

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值