当前位置:网站首页>MySQL 5.7升级到8.0详细过程
MySQL 5.7升级到8.0详细过程
2022-07-31 07:09:00 【web18484626332】
一、升级前准备
1.1.MySQL提供mysql-shell验证方式,可以下载后进行验证:
下载shell验证文件:
https://cdn.mysql.com/archives/mysql-shell/mysql-shell-8.0.27-linux-glibc2.12-x86-64bit.tar.gz
验证是否可以升级成功(验证的时候出现了几个错误没去处理,升级后倒时也没发现问题,如果是生产环境下还是要小心一些)
# 验证mysql升级
[[email protected]] tar -xf mysql-shell-8.0.27-linux-glibc2.12-x86-64bit.tar.gz
[[email protected]] cd mysql-shell-8.0.27-linux-glibc2.12-x86-64bit/bin
[[email protected]] ./mysqlsh -uroot -p'123456' -S /tmp/mysql.sock -e "util.checkForServerUpgrade()"
1.2. 备份原数据库(防止升级过程中出现问题,导致数据丢失,有条件建议异地备份)
[[email protected]] mysqldump -uroot -p'123456' --all-databases --lock-tables=0 > all.sql.bak.20220412
[[email protected]] mv all.sql.bak.20220412 /data/backup/mysql/
1.3.下载MySQL8.0
下载地址:mysql:https://downloads.mysql.com/archives/community/
选择文件:mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# 解压mysql8.0:
[[email protected]] tar -xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# 移动到指定目录
[[email protected]] mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql8
# 更改文件夹所属
[[email protected]] chown -R mysql.mysql /usr/local/mysql8/
二、升级过程配置
2.1. 修改mysql配置文件,主要是mysql8.0部分,及sql_mode中的NO_ENGINE_SUBSTITUTION
# 编辑配置文件
[[email protected]] vim /etc/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
log-bin=mysql-bin
server-id=170
character_set_server=utf8
init_connect='SET NAMES utf8'
#basedir=/usr/local/mysql
#datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names =1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone = '+8:00'
max_allowed_packet = 32M
#default_password_lifetime=90
#wait_timeout=600
# mysql8.0 add
collation-server=utf8_general_ci
basedir=/usr/local/mysql8
datadir=/usr/local/mysql/data
skip_ssl
default_authentication_plugin=mysql_native_password
2.2 开始升级
# 进入原mysql命令行
[[email protected]] mysql -uroot -p'123456'
# 查看mysql版本
mysql> select version();
+------------+
| version() |
+------------+
| 5.7.26-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.00 sec)
# 确保数据都刷到硬盘上,更改成0
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
使用安全模式启动mysql8.0,正常启动后可以进入到mysql命令行,如果没启动成功,需要查看日志cat /var/log/mysqld.log解决后,再进入命令行
# 使用mysql8.0启动
[[email protected]] /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
# 进入mysql命令行
[[email protected]] mysql -uroot -p'123456'
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.27 |
+-----------+
1 row in set (0.00 sec)
mysql> exit;
Bye
2.2 配置环境变量
[[email protected]] vim /etc/profile
# add mysql
export PATH=$PATH:/usr/local/mysql8/bin
# 使环境变量生效
[[email protected]] source /etc/profile
查看客户端版本配置
# 验证版本
[[email protected]] which mysql
/usr/local/mysql8/bin/mysql
# 查看版本
[[email protected]] mysql -V
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
如果客户端版本不正确,可以修改软链接,再重新查看
# 修改软链接
[[email protected]] ln -snf /usr/local/mysql8/bin/mysql /usr/bin/mysql
三、配置启动项
[[email protected]] cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
# 修改启动项目
[[email protected]] vim /etc/init.d/mysqld
# 修改目录位置
basedir=/usr/local/mysql8
datadir=/usr/local/mysql/data
# 添加到启动列表
[[email protected]] chkconfig --add mysqld
# 刷新启动信息
[[email protected]] systemctl daemon-reload
# 查看启动项列表
[[email protected]] chkconfig --list
重新启动服务器没有成功,启动的时候报错没有mysqld.pid文件,创建后启动成功
# 重启动无法创建mysqld.pid文件处理方法
[[email protected]] cat /var/log/mysqld.log
[[email protected]] cd /run
[[email protected]] mkdir mysqld
[[email protected]] chown -R mysql.mysql ./mysqld
[[email protected]] cd mysqld
[[email protected]] touch mysqld.pid
[[email protected]] chown -R mysql.mysql ./mysqld.pid
[[email protected]] service mysqld start
Starting MySQL.. SUCCESS!
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- 【面试题】从输入URL到游览器渲染完成,经历了什么
- Regarding "computing power", this article is worth reading
- 2022.07.15_Daily Question
- mysql insert new field method
- "The C language games" mine clearance
- Read Elephant Swap in one article, why does it bring such a high premium to ePLATO?
- 2704:寻找平面上的极大点
- 2022.07.13 _ a day
- [PSQL] 复杂查询
- 进程调度的基本过程
猜你喜欢

2022.07.14_Daily Question

Shell编程之条件语句

完美指南|如何使用 ODBC 进行无代理 Oracle 数据库监控?

MySQL detailed explanation

超级详细的mysql数据库安装指南

MySQL installation to the last step in the write the configuration file failed?And after the installation steps

The first part of the R language

初识NK-RTU980开发板

双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分

关于yum源的配置及更新
随机推荐
DAY18:Xss 靶场通关手册
Thread 类的基本用法——一网打尽
Read Elephant Swap in one article, why does it bring such a high premium to ePLATO?
2022.07.22 _ a day
【Objective-C语言中的@property】
【面试题】从输入URL到游览器渲染完成,经历了什么
双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分
基于LSTM的诗词生成
《c语言》青蛙跳台阶递归问题
强化学习科研知识必备(数据库、期刊、会议、牛人)
【愚公系列】2022年07月 Go教学课程 022-Go容器之字典
庐山谣寄卢侍御虚舟
2022.07.24_每日一题
最大似然估计和最小二乘法 含代码
uniapp 高度不自适应
中断及pendSV
bcos简介及自序
2022.07.15_Daily Question
链表实现及任务调度
mysql插入新字段方法