mysql5.7版本安装
#!/bin/bash
ext="退出: 按ctrl+c或者control+c"
echo '如果你已经安装过mysql请停止mysql进程然后使用rm -rf <mysqlpath> 删除mysql'
read -p "输入你想用的mysql密码(打错密码或者${ext}): " my_input
echo "等待5秒,期间可以犹豫取消安装${ext}"
sleep 5
echo '安装编译工具及库文件 如果你安装过mysql就无需使用yum了'
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
yum -y install libaio-devel.x86_64
yum -y install numactl
echo 'mysql将下载并解压安装在 /usr/local/ 路径下'
cd /usr/local
echo '下载mysql'
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
echo "等待5秒,即将开始解压安装。期间可以取消安装,但5秒后请不要再退出了${ext}"
sleep 5
echo "开始解压安装,请不要退出!"
sleep 2
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
cd mysql
mkdir data
chmod -R 777 /usr/local/mysql/data
groupadd mysql
useradd -g mysql mysql
echo -e "[mysqld]\nbind-address=0.0.0.0\nport=3306\nuser=mysql\nbasedir=/usr/local/mysql\ndatadir=/usr/local/mysql/data\nsocket=/tmp/mysql.sock\nlog-error=/usr/local/mysql/data/mysql.err\npid-file=/usr/local/mysql/data/mysql.pid\n#character config\ncharacter_set_server=utf8mb4\nsymbolic-links=0\nexplicit_defaults_for_timestamp=true" > /etc/my.cnf
echo '开始安装'
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
echo '安装结束,备份初始密码/usr/local/mysql/data/mysql.err,位于末尾root@localhost: <密码>'
last_line=$(tail -n 1 /usr/local/mysql/data/mysql.err)
pwd=$(echo $last_line | awk '{print $NF}')
echo '############安装结束########分隔符############创建软连接###设置开机启动#####'
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql start
echo "文件中的mysql初始密码是: $pwd"
mysql -hlocalhost -uroot -p${pwd} << EOF
set password=password("${my_input}");
FLUSH PRIVILEGES;
USE mysql;
UPDATE user SET Host='%' WHERE User='root';
FLUSH PRIVILEGES;
EOF
echo "关闭防火墙并且禁止开机启动"
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
echo "安装结束,清理安装文件"
cd /usr/local
rm -rf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
echo "您设置的 MySQL 密码为: ${my_input}"
echo "请输入密码登陆验证#mysql -hlocalhost -uroot -p 按exit退出"
mysql -hlocalhost -uroot -p