MySQL常见错误分析与解决方法总结(3)

13、 Table ‘xxx’ already exists
翻译:数据表xxx已经存在
 分析:xxx表已经存在于库中,再次试图创建这个名字的表就会引发这个错误。同样多发生在论坛的升级中。类似于问题十二。
 解决: 看看已经存在的表是否和将要创建的表完全一样,一样的话可以跳过不执行这个sql,否则请将存在的表先删除,之后继续执行升级文件。

14、 Can’t create database ‘xxx’. Database exists
翻译:不能创建数据库xxx,数据库已经存在
 分析:一个mysql下面的数据库名称必须保证唯一性,否则就会有这个错误。
 解决:把已经存在的数据库改名或者把将要创建的数据库改名,总之不让他们的名称冲突。

15、 小结(针对问题 11\12\13\14\15)
 此类问题错误提示中都暗藏一个关键词duplicate(重复)
 那么对于mysql数据库来说什么东西是不能重复的呢?
 数��库 database
同一个数据库下数据表 table
同一个数据表下字段 column
同一个数据表下索引 key
同一个数据表在索引唯一(UNIQUE PRIMARY)的情况下记录中的这些字段不可以重复

16、Unknown system variable ‘NAMES’
翻译:未知的系统变量NAMES
分析:Mysql版本不支持字符集设定,此时强行设定字符集就会出现这个错误。
 解决: 将sql语句中的SET NAMES ‘xxx’ 语句去掉

17、 Lost connection to MySQL server during query
翻译:MySQL服务器失去连接在查询期间
 分析:远程连接数据库是有时会有这个问题。MySQL服务器在执行一条sql语句的时候失去了连接造成的。
 解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环境。

18、User ‘red’ has exceeded the ‘max_updates’ resource (current value: 500)
翻译:msql用户red已经超过了’max_updates’(最大更新次数),’max_questions’(最大查询次数),’max_connections’(最大连接数),当前设定为500
分析:在mysql数据库的下有一个库为mysql,它其中有一个表为user这里面的纪录每一条都对应为一个mysql用户的授权。其中字段 max_questions max_updates max_connections分别记录着最大查询次数 最大更新数 最大连接数,当目前的任何一个参数大于任何一个设定的值就会产生这个错误。
 解决: 独立主机用户可以直接修改授权表。修改完之后重启mysql或者跟新授权表,进入mysql提示符下执行
FLUSH PRIVILEGES;
记得后面要有分号’;’
虚拟主机的用户如果总是出现这个问题可找空间商协商解决。

19、Too many connections (1040)链接过多
 翻译:达到最大连接数
 问题分析:
 连接数超过了mysql设置的值,与max_connections 和wait_timeout 都有关系。wait_timeout的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大
 解决方法:
1.虚拟主机用户请联系空间商优化 MySQL 服务器的配置;
2.独立主机用户请联系服务器管理员优化 MySQL 服务器的配置,可参考:
 修改 MySQL 配置文件 my.ini 或者 my.cnf 中的参数:
max_connections= 1000
 wait_timeout = 10
修改后重启 MySQL ,如果经常性的报此错误,请做一下服务器的整体优化。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/284dd49432c7bfd0e3cec1d2ec0fda2e.html