ITPub博客

首页 > 数据库 > MySQL > mysql 从5.7.X升到8.0.X

mysql 从5.7.X升到8.0.X

原创 MySQL 作者:yy418408247 时间:2021-09-28 18:10:29 0 删除 编辑
序:
因为存在漏洞,客户要求需要从5.7.X升到8.0.X。
1.升级前准备
新特性:
  • 默认字符集变为utf8mb4。
  • MyISAM系统表全部换成InnoDB表。
  • JSON特性增强。
  • 支持不可见索引,支持直方图。
  • sql_mode参数默认值变化。
  • 默认密码策略变更。
  • 新增角色管理。
  • 支持窗口函数,支持Hash join。
温馨提示:
  • 注意字符集设置。
  • 密码认证插件变更。
  • sql_mode支持问题。
2.实操过程
1>.把以前数据库进行备份,为了安全。如果不是很重要的可以忽略这个步骤。
## 路径确定
[root@localhost u01]# pwd
/u01/mysql
[root@localhost u01]# cd /u01/
## 进行备份
[root@localhost u01]# zip -r -p mysql.zip  mysql
[root@localhost u01]# ll
drwxr-xr-x. 7 mysql mysql       4096 Sep  8  2020 mysql
-rw-r--r--  1 root  root  2651712000 Sep 23 10:41 mysql-8.0.19-linux-glibc2.12-x86_64.tar
-rw-r--r--  1 root  root  1436641756 Sep 28 11:17 mysql.zip
  2>.解压压缩包,并且解压到/usr/local/。(安装包是我直接从同事私服下载。大家可以从网上获取)
[root@localhost u01]# tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar  -C /usr/local/
3>.文件夹重命名mysql8
[root@localhost u01]# cd  /usr/local
 [root@localhost local]#  mv mysql-8.0.19-linux-glibc2.12-x86_64/ mmysql8
  4>.更改配置文件 /etc/my.cnf
#8.0 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 = /usr/local/mysql8 skip_ssl default_authentication_plugin=mysql_native_password
5>.确认版本,关闭数据库
  [root@localhost mysql]# mysql -uroot -p'XXXXXXX'
   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.23-log |
+------------+
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.01 sec)
mysql> set global innodb_fast_shutdown=0;
Query OK, 0 rows affected (0.00 sec)
mysql> shutdown;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
6>.确认mysql进行已经不存在了。
[root@localhost mysql]# ps aux | grep mysql
root     19015  0.0  0.0 112712   952 pts/3    S+   16:57   0:00 grep --color mysql
7>.对所有的mysql文件进行授权。
[root@localhost mysql]#chown -R mysql.mysql /usr/local/mysql8/
[root@localhost mysql]#chown -R mysql.mysql /etc/my.cnf
8>.执行启动mysql (没有进行配置项修改,如果有填写,就进行修改)
[root@localhost mysql]#/etc/init.d/mysql start
备注一下:修改配置项: [root@localhost mysql]#vi /etc/init.d/mysql basedir=/usr/local/mysql8  # 修改basedir目录
出现错误1: [MY-010022] [Server] Failed to Populate DD tables.
查看日志:
原因:错误就是反馈,有个存储过程,问题。
处理方法:
  • 还原到mysql 5.7
  • 查找到报错的问题进行处理。
  • 然后在进行授权,启动。
出现错误2: unknown variable 'query_cache_size=262144000'.
查看日志:
2021-09-28T17:36:32.905388+08:00 5 [System] [MY-013381] [Server] Server upgrade from '50700' to '80019' started.
2021-09-28T17:36:48.994585+08:00 5 [System] [MY-013381] [Server] Server upgrade from '50700' to '80019' completed.
2021-09-28T17:36:49.185870+08:00 0 [ERROR] [MY-000067] [Server] unknown variable 'query_cache_size=262144000'.
2021-09-28T17:36:49.187827+08:00 0 [ERROR] [MY-010119] [Server] Aborting
2021-09-28T17:36:51.123917+08:00 0 [System] [MY-010910] [Server] /usr/local/mysql8/bin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
原因:由于mysql驱动包的版本过低导致这个问题的发生意思是query cache在MySQL5.7.20就已经过时了,而在MySQL8.0之后就已经被移除了。
处理方法:
在/etc/my.cnf 中删除 query_cache 相关参数。
9>.验证mysql 版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.19    |
+-----------+
1 row in set (0.00 sec)
10>.修改环境变量(修改PATH变量) [root@localhost mysql]# vi /etc/profile # 将PATH中的/usr/local/mysql/bin改为/usr/local/mysql8/bin
#配置环境变量生效
[root@localhost mysql]# source /etc/profile  
11>.验证
[root@localhost u01]# mysql -V
mysql  Ver 8.0.19 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
[root@localhost u01]# which mysql
/usr/local/mysql8/bin/mysql
Deployment Complete;


游戏是我的全部图景,我将演绎所有的游戏角色,我是每个活着角色的传奇。   --开心研

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29494175/viewspace-2794264/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 编译安装samba
请登录后发表评论 登录
全部评论
游戏是我的全部图景,我将演绎所有的游戏角色,我是每个活着角色的传奇。 --开心研

注册时间:2014-02-19

  • 博文量
    44
  • 访问量
    63771