应用场景:ubuntu上已有mysql8.0服务,需要再安装另外一个版本mysql5.7.40

1.到官网下载安装包:

https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz

2.创建mysql用户组:

1
2
sudo groupadd mysql;
sudo useradd -r -g mysql -s /bin/false mysql;

3.创建安装目录以及数据存储目录:

1
2
3
cd /mysql;
sudo mkdir /mysql;
sudo mkdir /mysql/data5.7.40

4.解压安装包:

1
2
3
cd /mysql;
sudo tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz;
sudo mv  mysql-5.7.40-linux-glibc2.12-x86_64 mysql5.7.40

5.修改MySQL目录权限

1
2
cd mysql5.7.40;
sudo chown -R mysql:mysql .;

6.创建配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[client]
port = 5506  
socket = /mysql/mysql5.7.40/mysqld.sock  
default-character-set=utf8  

[mysql]
default-character-set=utf8  

[mysqld_safe]
socket = /mysql/mysql5.7.40/mysqld.sock  
pid-file = /mysql/mysql5.7.40/mysqld.pid  

[mysqld]
basedir = /mysql/mysql5.7.40  
datadir = /mysql/data5.7.40  
port = 5506  
server_id = 11  
socket = /mysql/mysql5.7.40/mysqld.sock  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  
lower_case_table_names=0  
max_allowed_packet = 256M  
log_error = /mysql/mysql5.7.40/log/error.log  
character-set-server=utf8

7.初始化数据库:

1
sudo /mysql/mysql5.7.40/bin/mysqld --defaults-file=/mysql/mysql5.7.40/my.cnf --initialize --user=mysql;

初始化过程中,日志会记录my.cnf指定的日志路径:/mysql/mysql5.7.40/log/error.log,初始密码也在

8.加密连接:

1
sudo /mysql/mysql5.7.40/bin/mysql_ssl_rsa_setup --defaults-file=/mysql/mysql5.7.40/my.cnf;

9.启动MySQL:

1
sudo /mysql/mysql5.7.40/bin/mysqld --defaults-file=/mysql/mysql5.7.40/my.cnf --user=mysql;

10.登录MySQL:

1
sudo /mysql/mysql5.7.40/bin/mysql -uroot -p -S /mysql/mysql5.7.40/mysqld.sock

11.修改密码以及创建远程登录账号:

1
2
3
4
SET PASSWORD = PASSWORD('admin@123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
grant all privileges on *.* to 'root'@'%' identified by 'admin@123456' with grant option;

12.停止然后启动MySQL:

1
sudo /mysql/mysql5.7.40/bin/mysqladmin -uroot -padmin@123456 -S /mysql/mysql5.7.40/mysqld.sock shutdown

13使用pm2管理mysql服务:

1
pm2 start "/mysql/mysql5.7.40/bin/mysqld --defaults-file=/mysql/mysql5.7.40/my.cnf --user=mysql;" --name mysql5.7.40

查看更多

14.通过脚本恢复MySQL数据库:

1
mysql -uroot -padmin@123456 -S /mysql/mysql5.7.40/mysqld.sock Edu_t < /xx/xx/xx.sql

15.定时任务备份数据库:

1
2
3
4
#!/bin/bash  
date_str=$(date +%Y%m%d%H%M)
mysqldump --column-statistics=0 -uroot  --password=admin@123456 -S /mysql/mysql5.7.40/mysqld.sock -R -E -e \Edu> /mysql/backup5.7.40/Edu_backup_$date_str.sql
find /mysql/backup5.7.40/ -mtime +7 -name "Edu_backup_*.sql" -exec rm -rf {} \;

作者 菜园君