[MySQL FAQ]系列 -- 写给新手:学会找到问题所在

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
前言:我想,对于新手来说,有个很重要的问题,就是在mysql发生问题时,就束手无策,不知道该做什么了。要么到论坛里发“冰天雪地裸体跪求帮助”或“急急急”之类的帖子,要么在群里狂喊,对解决问题毫无帮助。这个时候,新手们要做的就是,学会看日志,并且找到问题所在,然后尝试自己动手解决,或者把问题描述清楚,让有经验的人士帮忙。本文说下几种常见问题,以及解决问题的丝路。

情景1:mysql无法启动

[ERROR] /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/yejr.pid' (Errcode: 13)
可以看到,日志提醒的是,无法创建文件: /usr/local/mysql/yejr.pid,错误代码(Errcode)为:13。这时候,我们可以通过mysql提供的工具 perror 来查看错误代码 13 具体代表什么意思:
[yejr@imysql ~yejr]# /usr/local/mysql/bin/perror 13
OS error code  13:  Permission denied
这下很明了了,没有权限,只需要修改一下目录属主即可:
[yejr@imysql ~yejr]# chown -R mysql:mysql /usr/local/mysql
 

情景2:mysql无法启动

Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/lib/mysql/yejr.pid
mysqld ended
这是屏幕的标准错误输出,谁都无法理解真正是什么意思。很多新手在提问时,也一般只会提供这部分信息,当然是完全不够的。这时候,我们需要看看数据库主目录下的错误日志文件到底记录了什么内容。一般情况下,错误日志文件名为:xxx.err。
[yejr@imysql ~yejr]# more *.err
......
File './yejr-bin.000001' not found (Errcode: 13)
[ERROR] Could not use yejr-bin for logging (error 13). Turning logging off for the whole duration of the MySQL
To turn it on again: fix the cause, shutdown the MySQL server and restart it.
[ERROR] Aborting
[Note] /usr/libexec/mysqld: Shutdown complete
......
错误代码和刚才的一样,也是属于权限的问题,不过这次是要创建binlog。这时候,我们需要先确定是否需要开启 binlog,如果系统的I/O负载不是很高,而且没有完善的备份机制情况下,建议还是开启binlog,至少作为一种应急备份机制。如果不需要开启,我们只需要在 my.cnf 中把类似以下2行注释掉:
#log-bin = xxx
#binlog-format = xxx
这时候就会禁用binlog,然后跟上面的例子一样,修改下目录属性,应该就可以了。
总结:在你不知道该怎么办的时候,第一件事,就是查看 xxx.err 文件,然后把该文件最新部分的内容提供给你要询问的人,以方便他们帮助你解决问题。


本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308907,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Oracle 数据可视化
MySQL新手必知必会
MySQL是应用广泛的关系型数据库系统,是研发人员必学的重要工具,本文介绍MySQL的核心内容,以SQL语句为主。
208 0
MySQL新手必知必会
|
SQL 存储 运维
FAQ系列 | MySQL DBA修炼秘籍
FAQ系列 | MySQL DBA修炼秘籍
117 0
|
存储 Oracle 关系型数据库
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
108 0
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
|
存储 关系型数据库 MySQL
FAQ系列 | MySQL索引之主键索引
FAQ系列 | MySQL索引之主键索引
162 0
|
SQL 缓存 固态存储
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
149 0
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
|
关系型数据库 MySQL 测试技术
[MySQL FAQ]系列 — 打开general log到底影响多大
[MySQL FAQ]系列 — 打开general log到底影响多大
129 0
[MySQL FAQ]系列 — 打开general log到底影响多大
|
存储 Oracle 关系型数据库
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
127 0
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
|
SQL 缓存 固态存储
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
143 0
FAQ系列 | 是什么导致MySQL数据库服务器磁盘I/O高?
|
存储 Oracle 关系型数据库
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
108 0
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
|
存储 缓存 NoSQL
[MySQL FAQ]系列 — 从MyISAM转到InnoDB需要注意什么
[MySQL FAQ]系列 — 从MyISAM转到InnoDB需要注意什么