问题来源

  • 公司数据库产品架构最近在做改变。测试人员在down掉一个分布式存储节点物理机后,MySQL默认会调度到其他节点。然而调度过程中发现MySQL无法启动,于是发来一张的截图:

问题分析

  • 看到报错第一感觉就是MySQL的ibdata和redo有问题,于是google一圈也没有太大收获
  • 于是乎就有了下面的复现的步骤

问题复现

①、确认已经有MySQL运行

[root@10-10-30-236 mysql]# ps -ef|grep mysqld
mysql     5000     1  0 Apr21 ?        00:07:53 /usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf
root     32537 29366  0 15:57 pts/0    00:00:00 grep --color=auto mysqld

②、修改配置文件my.cnf部分参数

  • 原my.cnf参数
port=3306
log-bin=/var/lib/mysql/archive/mysql-bin
log-error=/var/log/mysql/error.log
  • 修改后参数
port=3307
log-bin=/var/lib/mysql/archive1/mysql-bin
log-error=/var/log/mysql/error1.log

③、创建目录并启动MySQL

# cp -r /var/lib/mysql/archive /var/lib/mysql/archive1
# cp -r /var/lib/mysql/redo /var/lib/mysql/redo1
# chown -R mysql:mysql /var/lib/mysql
# /opt/mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysqld_safe --defaults-file=/opt/mysql-5.7.17-linux-glibc2.5-x86_64/my.cnf &

④、查看error.log信息

[root@10-10-30-236 mysql]# cat /var/log/mysql/error1.log
2019-04-23T07:41:46.298871Z 0 [Warning] The syntax '--metadata_locks_hash_instances' is deprecated and will be removed in a future release
2019-04-23T15:41:46.299104+08:00 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2019-04-23T15:41:46.299135+08:00 0 [Note] /opt/mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysqld (mysqld 5.7.17-log) starting as process 32464 ...
2019-04-23T15:41:46.312984+08:00 0 [Warning] option 'innodb-buffer-pool-size': signed value 0 adjusted to 5242880
2019-04-23T15:41:46.313352+08:00 0 [Warning] InnoDB: Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html
2019-04-23T15:41:46.313363+08:00 0 [Warning] InnoDB: Using innodb_file_format_max is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html
2019-04-23T15:41:46.313409+08:00 0 [Note] InnoDB: PUNCH HOLE support not available
2019-04-23T15:41:46.313419+08:00 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-04-23T15:41:46.313422+08:00 0 [Note] InnoDB: Uses event mutexes
2019-04-23T15:41:46.313426+08:00 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2019-04-23T15:41:46.313429+08:00 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
2019-04-23T15:41:46.313432+08:00 0 [Note] InnoDB: Using Linux native AIO
2019-04-23T15:41:46.317318+08:00 0 [Note] InnoDB: Number of pools: 1
2019-04-23T15:41:46.317444+08:00 0 [Note] InnoDB: Not using CPU crc32 instructions
2019-04-23T15:41:46.320971+08:00 0 [Note] InnoDB: Initializing buffer pool, total size = 5M, instances = 1, chunk size = 5M
2019-04-23T15:41:46.321480+08:00 0 [Note] InnoDB: Completed initialization of buffer pool
2019-04-23T15:41:46.322157+08:00 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-04-23T15:41:46.332282+08:00 0 [ERROR] InnoDB: Unable to lock /var/lib/mysql/data/innodb_ts/ibdata1 error: 11
2019-04-23T15:41:46.332298+08:00 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2019-04-23T15:41:46.332302+08:00 0 [Note] InnoDB: Retrying to lock the first data file
2019-04-23T15:41:47.332427+08:00 0 [ERROR] InnoDB: Unable to lock /var/lib/mysql/data/innodb_ts/ibdata1 error: 11
2019-04-23T15:41:47.332471+08:00 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
...
2019-04-23T15:43:26.352934+08:00 0 [ERROR] InnoDB: Unable to lock /var/lib/mysql/data/innodb_ts/ibdata1 error: 11
2019-04-23T15:43:26.352988+08:00 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2019-04-23T15:43:26.353008+08:00 0 [Note] InnoDB: Unable to open the first data file
2019-04-23T15:43:26.353054+08:00 0 [ERROR] InnoDB: Operating system error number 11 in a file operation.
2019-04-23T15:43:26.353078+08:00 0 [ERROR] InnoDB: Error number 11 means 'Resource temporarily unavailable'
2019-04-23T15:43:26.353092+08:00 0 [Note] InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
2019-04-23T15:43:26.353099+08:00 0 [ERROR] InnoDB: Cannot open datafile '/var/lib/mysql/data/innodb_ts/ibdata1'
2019-04-23T15:43:26.353105+08:00 0 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2019-04-23T15:43:26.353110+08:00 0 [ERROR] InnoDB: Plugin initialization aborted with error Cannot open a file
2019-04-23T15:43:26.953781+08:00 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-04-23T15:43:26.953831+08:00 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-04-23T15:43:26.953839+08:00 0 [ERROR] Failed to initialize plugins.
2019-04-23T15:43:26.953845+08:00 0 [ERROR] Aborting2019-04-23T15:43:26.953852+08:00 0 [Note] Binlog end
2019-04-23T15:43:26.953922+08:00 0 [Note] Shutting down plugin 'MyISAM'
2019-04-23T15:43:26.954354+08:00 0 [Note] /opt/mysql-5.7.17-linux-glibc2.5-x86_64/bin/mysqld: Shutdown complete

总结:

  • 解决问题自然是停掉原来的MySQL进程再启动;或者新的MySQL重新定义redo和data目录;至于产品中为什么出现这个问题只能又开发同学排查了
  • 有的时候google也不靠谱的情况下,只能根据自己的经验猜测来复现问题,从而解决问题了

MySQL共有data和redo的后果相关推荐

  1. mysql 删除数据后myd_Windows下的MySQL删除data文件夹后……

    MySQL删除data文件夹后,怎么都无法启动了,出现错误: 150106 9:28:43 [Note] Plugin 'FEDERATED' is disabled. wampmysqld: Tab ...

  2. java mysql 文本导入数据语句_Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL...

    Mysql load data的使用 数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量IN ...

  3. windows下 mysql 转移data目录

    昨天遇到一个现场问题,实施人员把mysql的data放在C盘,用过一阵以后C盘快满了. 于是准备做数据迁移,想到如下几种方案(均需要先把mysql服务停掉): 1.转储SQL文件 但是问题是,想要迁移 ...

  4. mysql通过data目录恢复数据库

    mysql通过data目录恢复数据库 阅读:1236次   时间:2010-03-24 06:53:30   字体:[大 中 小] 重装系统后,MySQL服务没有了,但是数据库的文件还在,这个时候我想 ...

  5. Mysql的undo、redo、bin log分析

    目录 关于undo log 关于redolog 关于binlog 一个事务的提交流程 undo log :记录数据被修改之前的样子 redo log:记录数据被修改之后的样子 bin log:记录整个 ...

  6. mysql load data infile 重写_mysql load data infile 命令的数据导入

    文章介绍了mysql load data infile 命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍,有需要的朋友可参考. 使用方式如下: 代码 ...

  7. mysql启动命令指定data目录_CentOS 7下MySQL的data目录更改后,使用mysqld服务启动失败...

    在CentOS 7系统下,通过rpm和yum命令安装MySQL,一般会采取service mysqld start命令来启动MySQL.在MySQL的配置文件/etc/my.cnf中,默认的data路 ...

  8. mysql 修改data目录后 无法使用脚本启动

    一.公司Mysql环境 #1. 目前公司Mysql只做了主从 #2. Mysql数据库版本:Percona-Server-server-56-5.6.20-rel68.0.el6.x86_64.rpm ...

  9. MySQL中 Data truncated for column ‘xxx‘解决方法

    MySQL中 Data truncated for column 'xxx'解决方法 参考文章: (1)MySQL中 Data truncated for column 'xxx'解决方法 (2)ht ...

最新文章

  1. MySQL 中一个双引号的错位引发的血案
  2. mac mini mysql 安装_怎么在MacMini上安装ubuntu,Mac OS X 讨论区
  3. java学习(143):file方法类实现
  4. 白盒测试不是测试,更不高级
  5. 英文字典。怎样设计数据结构
  6. Overview of HEVC之5 帧间预测
  7. C语言中你可能会用到的字符串函数的代码
  8. 2010年最令人期待的10款视频游戏
  9. archlinux i3wm通知管理
  10. Excel一元线性回归分析
  11. kernel中的memtest
  12. oracle经典分数排名,力扣数据库题目: 分数排名(中等)
  13. 利用html2canvas和vue-qr生成带头像二维码的分享海报(二)
  14. 全球及中国农业微量营养素行业商业模式分析及投资风险预测报告2022-2028年版
  15. 小米妙想PC端连接平板5教程
  16. 几何绘图软件哪个好?
  17. 好分数学生家长查排名成绩-在线好分数查成绩入口
  18. 用python做通讯录包括姓名地址qq_用Python获取整个学校女生的电话和QQ
  19. 记一次折腾可移动式Ubuntu 20.04 安装在折腾折腾系列的WD p50上(即移动式挂在nvme协议下的移动固态硬盘以uefi模式启动的Ubuntu20.04 (to go))
  20. 广和通FM650 5G模块连接Ubuntu不显示USB串口问题解决

热门文章

  1. 【号外号外:微软收购 .NET 的开源实现 Xamarin 项目的公司】
  2. Linux虚拟化介绍
  3. 类的成员函数指针和mem_fun适配器的用法
  4. Java 二次MD5 32位小写加密算法与php页面加密结果相同
  5. 2012年11月14日学习研究报告
  6. winform中的webbrowser里面操作html代码问题
  7. Html/CSS博文目录
  8. Calendar使用方法
  9. Solr 3.5:配置mmseg4j同义词(已经配置好中文分词)
  10. 【crontab】误删crontab及其恢复