今天我们接着进行升级mysql,这次的升级是大版本升级但是和小版本是差不多的。
升级前确认:
1、没有用户连接mysql 数据库
2、全量备份(可以进行异机备份)
show processlist; #查看 是否还有用户连接
mysqldump -u root -p --all-databases --max_allowed_packet=512M >/opt/a.sql #备份
1、下载安装MySQL8
tar -xf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz -C /data
mv mysql-8.0.15-linux-glibc2.12-x86_64/ mysql-8.0.15
chown -R mysql. mysql-8.0.15/
2、更改配置文件my.cnf
[mysql]
socket=/opt/mysql-5.7/mysql.sock
[mysqld]
basedir=/opt/mysql-5.7/
datadir=/opt/mysql-5.7/data
socket=/opt/mysql-5.7/mysql.sock
symbolic-links=0
port=3306
character-set-server=utf8
skip-name-resolve
default-time-zone='+08:00'
default-storage-engine=INNODB
max_connections=500
innodb_buffer_pool_size=1G
lower_case_table_names=1
[mysqld_safe]
log-error=/opt/mysql-5.7/error.log
pid-file=/opt/mysql-5.7/mysql.pid
#添加
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
character_set_server = utf8
collation_server = utf8_general_ci
basedir = /data/mysql-8.0.15
skip_ssl
default_authentication_plugin=mysql_native_password
3、停止MySQL5.7
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.39 |
+-----------+
1 row in set (0.00 sec)
mysql> show variables like 'innodb_fast_shutdown';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1 |
+----------------------+-------+
1 row in set (0.00 sec)
mysql> set global innodb_fast_shutdown=0; #确保数据都刷到硬盘上,更改成0
mysql> shutdown; #停数据库
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
4、启动MySQL8
cd /data/mysql-8.0.15/
./bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
2022-10-27T08:59:08.754860Z mysqld_safe Logging to '/opt/mysql-5.7/error.log'.
2022-10-27T08:59:08.793260Z mysqld_safe Starting mysqld daemon with databases from /opt/mysql-5.7/data
mysql -u root -p 登录
5、收尾更改
vim /etc/my.cnf
[mysql]
socket=/data/mysql-8.0.15/mysql.sock
[mysqld]
basedir = /data/mysql-8.0.15
datadir=/opt/mysql-5.7/data
socket=/data/mysql-8.0.15/mysql.sock
symbolic-links=0
port=3306
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
character_set_server = UTF8
collation_server = utf8_general_ci
skip_ssl
default_authentication_plugin=mysql_native_password
skip-name-resolve
default-time-zone='+08:00'
default-storage-engine=INNODB
max_connections=500
innodb_buffer_pool_size=1G
lower_case_table_names=1
[mysqld_safe]
log-error=/opt/mysql-8.0.15/error.log
pid-file=/data/mysql-8.0.15/mysql.pid
vim /etc/profile #更改环境变量
export MYSQL_HOME=/data/mysql-8.0.15
export PATH=$MYSQL_HOME/bin:$PATH
source /etc/profile
vim /etc/init.d/mysqld #更改开机自启
basedir=/data/mysql-8.0.15
以上就是MySQL5.7 升级MySQL 8.0的所有步骤。