将mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz、mysql-init.sh和my.cnf放到同一目录下,然后执行mysql-init.sh,等待安装完成。
mysql安装包下载地址:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
mysql-init.sh内容如下:
#!/bin/sh
#mkdir -p /data/base
#mv mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz /data/base
tar -zxvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.42-linux-glibc2.12-x86_64/ /data/base/mysql-5.7.42
cd mysql-5.7.42
#创建日志目录和临时目录
mkdir -p log tmp
#拷贝配置文件
cp ../my.cnf /etc/my.cnf
#数据库初始化
./bin/mysqld --initialize-insecure --user=root
#拷贝启动文件
cp ./support-files/mysql.server /etc/init.d/mysql.server
#启动
/etc/init.d/mysql.server start
#设置MySQL的root密码
./bin/mysqladmin -u root password '123456'
#创建mysql客户端软链接
rm -f /usr/bin/mysql
ln -s /data/base/mysql-5.7.42/bin/mysql /usr/bin/mysql
#通过客户端登录
# ./bin/mysql -u root -p
mysql -uroot -p123456 << EOF
use mysql;
select user,host from user;
update user set host='%' where user='root';
flush privileges;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
EOF
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
my.cnf内容如下:
[mysqld]
port = 3306
socket = /data/base/mysql-5.7.42/tmp/mysql.sock
user = root
basedir = /data/base/mysql-5.7.42
datadir = /data/base/mysql-5.7.42/data
pid-file = /data/base/mysql-5.7.42/tmp/mysql.pid
sql_mode='ONLY_FULL_GROUP_BY'
log_error = /data/base/mysql-5.7.42/log/mysql-error.log
#log = /data/base/mysql-5.7.42/log/mysql.log
long_query_time = 2
#log-slow-queries = /data/base/mysql-5.7.42/log/slowquery.log
[client]
port = 3306
socket = /data/base/mysql-5.7.42/tmp/mysql.sock