Linux 升级 MySQL
2023-01-05 本文已影响0人
Rinaloving
MySQL Linux 升级 MySQL
升级 mysql 5.7.21 到 5.7.27
1. 查看原 mysql 版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.21 |
+-----------+
1 row in set (0.01 sec)
2. 备份数据库
-
直接操作,查看数据库,进行重要库备份(这里是 DMSPartySchool2 库)。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| DMSPartySchool2 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
- 找到 mysql 安装目录,进入 bin 目录
[root@XCPC-QWDX-30 /]# sudo find / -name 'mysql'
/etc/selinux/targeted/active/modules/100/mysql
find: ‘/run/user/1000/gvfs’: 权限不够
/run/lock/subsys/mysql
/home/mysql
/home/mysql/include/mysql
/home/mysql/data/mysql
/home/mysql/bin/mysql
/home/user/mysql-5.7.22-linux-glibc2.12-x86_64/include/mysql
/home/user/mysql-5.7.22-linux-glibc2.12-x86_64/bin/mysql
/usr/share/selinux/targeted/default/active/modules/100/mysql
/usr/share/bash-completion/completions/mysql
/usr/bin/mysql
[root@XCPC-QWDX-30 /]# cd /home/mysql/bin/
[root@XCPC-QWDX-30 bin]# ls
innochecksum mysqlcheck mysql_embedded mysql_tzinfo_to_sql
lz4_decompress mysql_client_test_embedded mysqlimport mysql_upgrade
myisamchk mysql_config mysql_install_db mysqlxtest
myisam_ftdump mysql_config_editor mysql_plugin perror
myisamlog mysqld mysqlpump replace
myisampack mysqld-debug mysql_secure_installation resolveip
my_print_defaults mysqld_multi mysqlshow resolve_stack_dump
mysql mysqld_safe mysqlslap zlib_decompress
mysqladmin mysqldump mysql_ssl_rsa_setup
mysqlbinlog mysqldumpslow mysqltest_embedded
[root@XCPC-QWDX-30 bin]#
- 依次执行命令并按提示输入密码(本机备份,注意大小写,先退出 mysql 然后执行以下语句)
./mysqldump -h 127.0.0.1 -u root -B -p DMSPartySchool2 > /DMSPartySchool2.bak
./mysqldump -u root -p DMSPartySchool2 > DMSPartySchool2.sql</pre>
- 执行结果(注意下面的方式)
[root@XCPC-QWDX-30 bin]# mysqldump -h 127.0.0.1 -u root -B -p DMSPartySchool2 > /DMSPartySchool2.bak
bash: mysqldump: 未找到命令...
[root@XCPC-QWDX-30 bin]# ./mysqldump -h 127.0.0.1 -u root -B -p DMSPartySchool2 > /DMSPartySchool2.bak
Enter password:
[root@XCPC-QWDX-30 bin]# ./mysqldump -u root -p DMSPartySchool2 > /DMSPartySchool2.sql
Enter password:
[root@XCPC-QWDX-30 bin]#
- 查看备份出的文件
root@XCPC-QWDX-30 bin]# cd /
[root@XCPC-QWDX-30 /]# ls
bin DMSPartySchool2.bak home lost+found opt run sys var
boot DMSPartySchool2.sql lib media proc sbin tmp webapp
dev etc lib64 mnt root srv usr www
[root@XCPC-QWDX-30 /]#
- 查看文件大小
[root@XCPC-QWDX-30 /]# ls -lh
总用量 40M
lrwxrwxrwx 1 root root 7 1月 6 2017 bin -> usr/bin
dr-xr-xr-x 6 root root 1.0K 7月 27 2020 boot
drwxr-xr-x 19 root root 3.5K 12月 6 16:46 dev
-rw-r--r-- 1 root root 20M 1月 6 13:36 DMSPartySchool2.bak
-rw-r--r-- 1 root root 20M 1月 6 13:42 DMSPartySchool2.sql
drwxr-xr-x 148 root root 12K 12月 6 16:47 etc
drwxr-xr-x 12 root root 4.0K 7月 23 2021 home
lrwxrwxrwx 1 root root 7 1月 6 2017 lib -> usr/lib
lrwxrwxrwx 1 root root 9 1月 6 2017 lib64 -> usr/lib64
drwx------ 2 root root 16K 12月 10 2019 lost+found
drwxr-xr-x 2 root root 4.0K 1月 6 2017 media
drwxr-xr-x 2 root root 4.0K 1月 6 2017 mnt
drwxr-xr-x 9 root root 4.0K 7月 3 2022 opt
dr-xr-xr-x 215 root root 0 12月 7 00:46 proc
dr-xr-x--- 12 root root 4.0K 1月 6 13:31 root
drwxr-xr-x 35 root root 920 12月 30 15:15 run
lrwxrwxrwx 1 root root 8 1月 6 2017 sbin -> usr/sbin
drwxr-xr-x 2 root root 4.0K 1月 6 2017 srv
dr-xr-xr-x 13 root root 0 1月 6 13:40 sys
drwxrwxrwt 11 root root 420 1月 6 13:34 tmp
drwxr-xr-x 13 root root 4.0K 12月 10 2019 usr
drwxr-xr-x 20 root root 4.0K 12月 7 00:46 var
drwxrwxr-x 5 user user 4.0K 7月 22 2021 webapp
drwxr-xr-x 6 root root 4.0K 6月 2 2021 www
[root@XCPC-QWDX-30 /]#
3. 上传MySQL 最新版本
-
下载 mysql 安装包

- 上传并解压
[root@XCPC-QWDX-30 /]# cd /usr/local/
[root@XCPC-QWDX-30 local]# ls
bin etc games include lib lib64 libexec nginx sbin share src webapp zxdriver
[root@XCPC-QWDX-30 local]# rz [root@XCPC-QWDX-30 local]# ve.
[root@XCPC-QWDX-30 local]# rz
rz waiting to receive.
[root@XCPC-QWDX-30 local]# ls
bin games lib libexec nginx share webapp
etc include lib64 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz sbin src zxdriver
[root@XCPC-QWDX-30 local]# tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.27-linux-glibc2.12-x86_64/bin/myisam_ftdump
4. 删除旧版本MySQL
- 使用下面命令,查看安装的MySQL
rpm -qa|grep -i mysql</pre>
-
正常如果rpm安装,则会出现提示:
-
我之前不是荣国rpm 安装的,所以采用以下删除方式删除
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除</pre>
- 然后依次删除即可。我这边不是rpm安装,所以查询不到的。所以不存在冲突依赖,不需要删除
5. 安装 MySQL
- 停掉正在运行的mysql 5.7.21
root@XCPC-QWDX-30 mysql]# cd /home/mysql/bin/
[root@XCPC-QWDX-30 bin]# ls
DMSPartySchool2.sql myisampack mysql_client_test_embedded mysqld_safe mysql_plugin mysqltest_embedded resolveip
innochecksum my_print_defaults mysql_config mysqldump mysqlpump mysql_tzinfo_to_sql resolve_stack_dump
lz4_decompress mysql mysql_config_editor mysqldumpslow mysql_secure_installation mysql_upgrade zlib_decompress
myisamchk mysqladmin mysqld mysql_embedded mysqlshow mysqlxtest
myisam_ftdump mysqlbinlog mysqld-debug mysqlimport mysqlslap perror
myisamlog mysqlcheck mysqld_multi mysql_install_db mysql_ssl_rsa_setup replace
[root@XCPC-QWDX-30 bin]# mysqladmin -u root -p shutdown
bash: mysqladmin: 未找到命令...
[root@XCPC-QWDX-30 bin]# ./mysqladmin -u root -p shutdown
Enter password:
[root@XCPC-QWDX-30 bin]#
- 替换二进制文件(5.7.27 替换 5.7.21)
[root@XCPC-QWDX-30 bin]# cd /usr/local/
[root@XCPC-QWDX-30 local]# ls
bin games lib libexec mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz sbin src zxdriver
etc include lib64 mysql-5.7.27-linux-glibc2.12-x86_64 nginx share webapp
[root@XCPC-QWDX-30 local]# cd mysql-5.7.27-linux-glibc2.12-x86_64/
[root@XCPC-QWDX-30 mysql-5.7.27-linux-glibc2.12-x86_64]# ls
bin COPYING docs include lib man README share support-files
[root@XCPC-QWDX-30 mysql-5.7.27-linux-glibc2.12-x86_64]# cd ..
[root@XCPC-QWDX-30 local]# ls
bin games lib libexec mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz sbin src zxdriver
etc include lib64 mysql-5.7.27-linux-glibc2.12-x86_64 nginx share webapp
[root@XCPC-QWDX-30 local]# mv mysql-5.7.27-linux-glibc2.12-x86_64 /home/mysql
[root@XCPC-QWDX-30 local]#
- 使用现有的数据库目录启动MySQL
./mysqld_safe --user=mysql --socket=/home/mysql/data/mysql.sock -p --skip-grant-tables --datadir=/home/mysql/data
- 过程
[root@XCPC-QWDX-30 local]# cd /home/mysql/bin/
[root@XCPC-QWDX-30 bin]# ls
DMSPartySchool2.sql myisampack mysql_client_test_embedded mysqld_safe mysql_plugin
innochecksum my_print_defaults mysql_config mysqldump mysqlpump
lz4_decompress mysql mysql_config_editor mysqldumpslow mysql_secure_installat
myisamchk mysqladmin mysqld mysql_embedded mysqlshow
myisam_ftdump mysqlbinlog mysqld-debug mysqlimport mysqlslap
myisamlog mysqlcheck mysqld_multi mysql_install_db mysql_ssl_rsa_setup
[root@XCPC-QWDX-30 bin]# ./mysqld_safe --user=mysql --socket=/home/mysql/data/mysql.sock -p --skip-grant-tables --datadir=/home/mysql/data
2023-01-06T06:32:04.565222Z mysqld_safe Logging to '/home/mysql/data/XCPC-QWDX-30.err'.
2023-01-06T06:32:04.620109Z mysqld_safe Starting mysqld daemon with databases from /home/mysql/data
2023-01-06T06:32:07.463890Z mysqld_safe mysqld from pid file /home/mysql/data/XCPC-QWDX-30.pid ended
[root@XCPC-QWDX-30 bin]#
- 检查所有表是否与当前版本兼容,并更新系统库
./mysql_upgrade -uroot -p -S /home/mysql/data/mysql.sock
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。</pre>
6. 上面不行,直接删掉重新安装
- 过程
[root@XCPC-QWDX-30 home]# rm -rf mysql
[root@XCPC-QWDX-30 home]# ls
dotnet dotnet2.1 dotnetframe dotnetsdk lost+found NetCoreSDK Nginx nginx1.16 user
[root@XCPC-QWDX-30 home]# </pre>
-
具体过程参考我之前的文章,安装完成。
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.27 |
+-----------+
1 row in set (0.00 sec)