mysql升级过程

官网下载最新的mysql安装包

上传到服务器的/opt/mysql目录下解压:

# 文件上传位置在/opt/mysql/下面
cd /opt/mysql/# 解压安装包
[root@zkmet mysql]# xz -d mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[root@zkmet mysql]# tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar # 文件夹重命名为mysql8
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8# 安装包移动(复制)至原安装包目录下,我的是/var/lib/
cp mysql8 /var/lib/# 更改文件夹所属
chown -R mysql.mysql /var/lib/mysql8/

更改/etc/my.conf配置,末尾添加关键配置

#for8.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 = /var/lib/mysql8
skip_ssl
default_authentication_plugin=mysql_native_password

备份数据库、备份数据库、备份数据库。重要的话说三遍

万事俱备后,按照如下指示进行正式升级。

# 进入原5.7 mysql命令行 正确关闭数据库
[root@zkmet mysql]# mysql -uroot -p
Enter password: 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.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.19客户端直接启动

# 执行命令/var/lib/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
[root@zkmet mysql]# /var/lib/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &# 我的一直卡在这个页面,还以为出错了,可以另起一个客户端,登录到数据库select version();查看数据库版本是否更新成功。
[1] 1787
[root@zkmet mysql]# 2021-11-12T06:32:56.314320Z mysqld_safe Logging to '/var/log/mysqld.log'.
2021-11-12T06:32:56.337533Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2021-11-12T07:26:29.183302Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

卡在上一步可另起客户端登录mysql

[root@zkmet etc]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.27    |
+-----------+
1 row in set (0.01 sec)

到这里其实证明数据库平滑升级成功了。**但是:**再修改一点配置

# 修改PATH变量
[root@zkmet etc]# vi /etc/profile
# 将PATH中的/usr/local/mysql/bin改为/usr/local/mysql8/bin # 生效验证
[root@zkmet etc]# source /etc/profile
[root@zkmet etc]# which mysql
/var/lib/mysql8/bin/mysql
[root@zkmet etc]# mysql -V
[root@zkmet etc]# mysql -V
mysql  Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)

问题一:

连接数据库报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

[root@zkmet ~]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决方式,找到 mysql.sock

[root@zkmet etc]# find / -name mysql.sock
/var/lib/mysql/mysql.sock

修改my.conf配置

[mysqld]
socket = /var/lib/mysql/mysql.sock[client]
socket = /var/lib/mysql/mysql.sock

问题二:

改完my.conf配置后直接重启mysqld发现重启不了

[root@zkmet bin]# service mysqld restart
停止 mysqld:                                              [确定]
MySQL Daemon failed to start.
正在启动 mysqld:                                          [失败]

查看/var/log/mysqld.log日志

07:47:22 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68196 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x35)[0xf559e5]
/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x7d4bd4]
/lib64/libpthread.so.0[0x3a2fe0f710]
/lib64/libc.so.6(gsignal+0x35)[0x3a2fa32925]
/lib64/libc.so.6(abort+0x175)[0x3a2fa34105]
/usr/sbin/mysqld(_Z18ut_print_timestampP8_IO_FILE+0x0)[0x7c3cf8]
/usr/sbin/mysqld(_ZN2ib5fatalD1Ev+0xb3)[0x11610d3]
/usr/sbin/mysqld[0x1203338]
/usr/sbin/mysqld[0x1203b98]
/usr/sbin/mysqld(_Z6fil_ioRK9IORequestbRK9page_id_tRK11page_size_tmmPvS8_+0x29e)[0x120c12e]
/usr/sbin/mysqld[0x11bf616]
/usr/sbin/mysqld(_Z13buf_read_pageRK9page_id_tRK11page_size_t+0x40)[0x11c0090]
/usr/sbin/mysqld(_Z16buf_page_get_genRK9page_id_tRK11page_size_tmP11buf_block_tmPKcmP5mtr_tb+0xd21)[0x11a1f01]
/usr/sbin/mysqld(_Z31trx_rseg_get_n_undo_tablespacesPm+0x15d)[0x114244d]
/usr/sbin/mysqld(_Z34innobase_start_or_create_for_mysqlv+0x2981)[0x11185c1]
/usr/sbin/mysqld[0x1000e8a]
/usr/sbin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x51)[0x8219f1]
/usr/sbin/mysqld[0xd39d26]
/usr/sbin/mysqld(_Z40plugin_register_builtin_and_init_core_sePiPPc+0x3e4)[0xd3af44]
/usr/sbin/mysqld[0x7cb006]
/usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x957)[0x7ce657]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x3a2fa1ed1d]
/usr/sbin/mysqld[0x7c4ac9]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
2021-11-12T07:56:58.641391Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-11-12T07:56:58.641442Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2021-11-12T07:56:58.644936Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.25-log) starting as process 6345 ...
2021-11-12T07:56:58.644998Z 0 [ERROR] Can't find error-message file '/usr/share/mysql/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2021-11-12T07:56:58.651266Z 0 [Note] InnoDB: PUNCH HOLE support available
2021-11-12T07:56:58.651337Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2021-11-12T07:56:58.651344Z 0 [Note] InnoDB: Uses event mutexes
2021-11-12T07:56:58.651353Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2021-11-12T07:56:58.651361Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2021-11-12T07:56:58.651370Z 0 [Note] InnoDB: Using Linux native AIO
2021-11-12T07:56:58.651667Z 0 [Note] InnoDB: Number of pools: 1
2021-11-12T07:56:58.651794Z 0 [Note] InnoDB: Using CPU crc32 instructions
2021-11-12T07:56:58.654249Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2021-11-12T07:56:58.667767Z 0 [Note] InnoDB: Completed initialization of buffer pool
2021-11-12T07:56:58.671260Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2021-11-12T07:56:58.684155Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4000!
2021-11-12 15:56:58 0x7f73adfaf720  InnoDB: Assertion failure in thread 140134816872224 in file ut0ut.cc line 942
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
07:56:58 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68196 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x35)[0xf559e5]
/usr/sbin/mysqld(handle_fatal_signal+0x4a4)[0x7d4bd4]
/lib64/libpthread.so.0[0x3a2fe0f710]
/lib64/libc.so.6(gsignal+0x35)[0x3a2fa32925]
/lib64/libc.so.6(abort+0x175)[0x3a2fa34105]
/usr/sbin/mysqld(_Z18ut_print_timestampP8_IO_FILE+0x0)[0x7c3cf8]
/usr/sbin/mysqld(_ZN2ib5fatalD1Ev+0xb3)[0x11610d3]
/usr/sbin/mysqld[0x1203338]
/usr/sbin/mysqld[0x1203b98]
/usr/sbin/mysqld(_Z6fil_ioRK9IORequestbRK9page_id_tRK11page_size_tmmPvS8_+0x29e)[0x120c12e]
/usr/sbin/mysqld[0x11bf616]
/usr/sbin/mysqld(_Z13buf_read_pageRK9page_id_tRK11page_size_t+0x40)[0x11c0090]
/usr/sbin/mysqld(_Z16buf_page_get_genRK9page_id_tRK11page_size_tmP11buf_block_tmPKcmP5mtr_tb+0xd21)[0x11a1f01]
/usr/sbin/mysqld(_Z31trx_rseg_get_n_undo_tablespacesPm+0x15d)[0x114244d]
/usr/sbin/mysqld(_Z34innobase_start_or_create_for_mysqlv+0x2981)[0x11185c1]
/usr/sbin/mysqld[0x1000e8a]
/usr/sbin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x51)[0x8219f1]
/usr/sbin/mysqld[0xd39d26]
/usr/sbin/mysqld(_Z40plugin_register_builtin_and_init_core_sePiPPc+0x3e4)[0xd3af44]
/usr/sbin/mysqld[0x7cb006]
/usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x957)[0x7ce657]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x3a2fa1ed1d]
/usr/sbin/mysqld[0x7c4ac9]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

这里我其实是比较蒙的,以为数据库玩崩了。所以一定要记得备份数据库。

# 都准备重装mysql的,后来死马当活马医,尝试执行下面的命令又好了
/var/lib/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

参考链接

MySQL5.7升级到8.0过程详解

https://www.cnblogs.com/mysqljs/p/12936024.html

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket 解决办法

https://blog.csdn.net/u013631121/article/details/80875837?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.essearch_pc_relevant&spm=1001.2101.3001.4242.1

mysql从5.7平滑升级到8.0.27相关推荐

  1. mysql 5.6 uf8mb4_MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从 ...

  2. MySQL从5.7.32升级到8.0.22

    目录 一.备份与导出数据 二.升级到MySQL-8.0.22同时解决字符集问题 2.1.卸载MySQL-5.7.32 2.2.安装MySQL-8.0.22 2.3.修改配置文件 my.cnf 三.导入 ...

  3. 将MySQL版本从5.7升级到8.0的操作过程和注意事项

    一.彻底的卸载旧版本 (如果没有卸载干净,会出现安装后的版本一直都是5.7,不论用的安装包是什么版本的) 1.这一步非必须,如果需要备份原数据库的可以参考. 2.从这开始是重点,完全卸载的流程: 停服 ...

  4. 从MySQL 5.6升级到8.0,Facebook付出了惨痛代价……

    欢迎关注方志朋的博客,回复"666"获面试宝典 Facebook 称,他们最近的一次大版本升级到 MySQL 5.6 花了一年多时间才完成,还在 5.6 版上开发 LSM 树存储引 ...

  5. nginx的平滑升级方法:

    最简单的nginx的平滑升级方法: 1 找到nginx的执行文件的路径 1 # ps auxf|grep nginx  记下nginx的master进程 pid(我这里是2752 ) 2 查看当前ng ...

  6. Mac卸载mysql并安装mysql升级到8.0.13版本

    引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...

  7. Centos MySQL 5.7安装、升级教程

    MySQL 5.7安装.升级笔记分享: 卸载当前的 MySQL 查看当前 MySQL 版本: ? 1 2 [root@coderknock ~]# mysql -V mysql Ver 14.14 D ...

  8. Nginx 的启动、停止、平滑重启、信号控制和平滑升级

    Nginx 的启动          假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/loca ...

  9. Nginx平滑升级,并增加清除缓存模块

    平滑升级nginx0.8.46到nginx1.0,并增加清除缓存模块 ×××: wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.g ...

最新文章

  1. 200 switching to ascii mode_王者荣耀:小伙200买V8号,146款皮肤还有1神秘道具,一封邮件哭了...
  2. 2017.3.18 糖果 思考记录
  3. Java多线程学习二十五:阻塞和非阻塞队列的并发安全原理||如何选择适合自己的阻塞队列?
  4. Java集合ArrayList的应用
  5. as工程放到源码编译_「Do.016」AndroidStudio不用编译,阅读Android源码
  6. 如何查看Linux的系统是64位的还是32位的
  7. redis-live监控安装与测试
  8. 使用ffmpeg简单合并视频(2个以上)
  9. 动手学深度学习环境安装
  10. Android Wi-Fi subsystem_ramdump简介(以QCOM为Base)
  11. 苏州大学计算机专业考研报录比,【图片】18年苏州大学计算机872考研经验分享【苏州大学研究生吧】_百度贴吧...
  12. 信息矩阵、海森矩阵、权重矩阵、协方差阵
  13. 大数据收集系统架构图
  14. Android获取外网ip
  15. 计算机专业春考技能考什么技能,春季高考信息技术考试说明知识技能
  16. 云计算概念及发展历程
  17. 解决前端 js 中使用 append 动态追加元素标签后,事件和css样式异常问题
  18. 1.2 网络爬虫分类
  19. 每日分享,三款纯jquery移动端日期时间选择插件
  20. 用Python群发邮件

热门文章

  1. 【在线电子书转换】云展网教程 | 如何设置电子书的翻页速度?
  2. unity 数字键的输入及刚体的速度的设置
  3. 企业公关“示弱”思维下的“变脸”戏法
  4. Linux:ftrace: 为什么有些函数没有在available_filter_functions
  5. 【Other】推荐点好听的钢琴曲
  6. 最强GTD时间管理工具(OmniFocus Pro 3)能干些什么?支持big sur
  7. 数组的降维与升维方法
  8. win 10 计算机找不到,怎么找到win10的计算器?不见了,怎么处理
  9. Android 意图(Intent)和过滤器(Filter)
  10. win7升级win10后周期性蓝屏问题解决(经过2个月的测试观察,电脑没有再出现蓝屏)