mysql提示错误怎么看 mysql查询报错2014

数据库mysql创建表格老是出错,看不懂英文提示?来自:51CTO(作者:superZS)
我在刚开始学习数据库的时候,没少走弯路 。经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决问题的办法 。跟无头苍蝇一样 , 会不加思索地把错误粘到百度上,希望赶紧查找一下有没有好的处理问题的方法 。我想这个应该是刚从事数据库的小白,都会遇到窘境 。
今天就给大家列举 MySQL 数据库中,最经典的十大错误案例,并附有处理问题的解决思路和方法,希望能给刚入行,或数据库爱好者一些帮助,今后再遇到任何报错,我们都可以很淡定地去处理 。
学习任何一门技术的同时,其实就是自我修炼的过程 。沉下心,尝试去拥抱数据的世界!
Top 1:
Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
问题还原
解决问题的思路:
1、首先先要考虑在我们 MySQL 数据库参数文件里面 , 对应的 max_connections 这个参数值是不是设置的太小了,导致客户端连接数超过了数据库所承受的最大值 。
● 该值默认大小是151,我们可以根据实际情况进行调整 。
● 对应解决办法:set global max_connections=500
但这样调整会有隐患,因为我们无法确认数据库是否可以承担这么大的连接压力,就好比原来一个人只能吃一个馒头,但现在却非要让他吃 10 个,他肯定接受不了 。反应到服务器上面,就有可能会出现宕机的可能 。
所以这又反应出了,我们在新上线一个业务系统的时候,要做好压力测试 。保证后期对数据库进行优化调整 。
2、其次可以限制 Innodb 的并发处理数量,如果 innodb_thread_concurrency = 0(这种代表不受限制) 可以先改成 16或是64 看服务器压力 。如果非常大,可以先改的小一点让服务器的压力下来之后,然后再慢慢增大,根据自己的业务而定 。个人建议可以先调整为 16 即可 。
MySQL 随着连接数的增加性能是会下降的,可以让开发配合设置 thread pool,连接复用 。在MySQL商业版中加入了thread pool这项功能
另外对于有的监控程序会读取 information_schema 下面的表,可以考虑关闭下面的参数
innodb_stats_on_metadata=https://www.04ip.com/post/0
set global innodb_stats_on_metadata=https://www.04ip.com/post/0
Top 2:(主从复制报错类型)
Last_SQL_Errno: 1062 (从库与主库数据冲突)
Last_Errno: 1062
Last_Error: Could not execute Write_rows event on table test.t;
Duplicate entry '4' for key 'PRIMARY',
Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY;
the event's master log mysql-bin.000014, end_log_pos 1505
针对这个报错,我们首先要考虑是不是在从库中误操作导致的 。结果发现,我们在从库中进行了一条针对有主键表的 sql 语句的插入,导致主库再插入相同 sql 的时候,主从状态出现异常 。发生主键冲突的报错 。
解决方法:
在确保主从数据一致性的前提下,可以在从库进行错误跳过 。一般使用 percona-toolkit 中的 pt-slave-restart 进行 。
在从库完成如下操作
[root@zs bin]# ./pt-slave-restart -uroot -proot123
2017-07-20T14:05:30 p=...,u=root node4-relay-bin.000002 1506 1062
之后最好在从库中开启 read_only 参数,禁止在从库进行写入操作
Last_IO_Errno: 1593(server-id冲突)
Last_IO_Error:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids;
these ids must be different for replication to work
(or the --replicate-same-server-id option must be used on slave but this
does not always make sense; please check the manual before using it)

推荐阅读