应用场景: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 |
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 {} \; |