系统环境:Centos
安装脚本
#!/bin/bash
echo "install mysql"
mysql_src="mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz"
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----"
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
`\cp -f my.cnf /etc/my.cnf`
`rm -rf my.cnf`
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
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`
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
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
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
echo "----start mysql----"
service mysql restart
echo "----ok----"
fi
#!/bin/bash
echo "----set passwd----"
target_path="/data"
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
sed -i "4c password = mysql123!" /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;"
echo "mysql install success"
fi