MySQL数据库常见错误及解决方案,常见错误分析与解决方法_Mysql_脚本之家

一、Can’t connect to MySQL server on ‘localhost’?

翻译:不能够接二连三到localhost
上的mysql?剖判:那表达“localhost”Computer是存在的,但在此台机器上却没提供MySQL服务。?要求运营那台机械上的MySQL服务,固然电话负载太高没空相应央浼也会发出这几个指鹿为马。?扫除:既然未有运转那就去运行那台机子的mysql。假诺开发银行不成事,许多是因为你的my.ini配置的有标题。重新配置其就能够。?倘使以为mysql负载万分,能够到mysql/bin
的目录下实践mysqladmin-uroot -p123 processlist来查阅mysql当前的历程。

图片 1

二、Unknown MySQL ServerHost ‘localhosadst’

1.MySQL不恐怕重启难题解决Warning: World-writable config file
‘/etc/my.cnf’ is ignored

翻译:未知的MySQL服务器localhosadst?解析:服务器localhosasdst
不设有。可能根本不可能连接?消亡:留意检查自身论坛上边包车型客车./config.inc.php找到$dbhost重新载入参数为不易的mysql
服务器地址。

原因

三、Access denied for user:’roota@localhost’

明日帮朋友维护服务器,在关闭数据库的吩咐发现mysql关不了,提醒Warning:
World-writable config file ‘/etc/my.cnf’ is ignored
,大致敬思是权力全局可写,任何二个客商都足以写。mysql忧虑这种文件被别的客商恶意校正,所以忽视掉这些布局文件。那样mysql不能够关闭。

?翻译:客商roota 访谈 localhost
被拒绝?深入分析:造成这几个错误经常数据库客户名和密码相对mysql服务器不得法?化解:细心检查自个儿论坛上边包车型地铁./config.inc.php 找到$dbuser、$dbpw核准后再一次安装保存就可以。

[root@ttlsa ~]# service mysqld stop Warning: World-writable config file '/etc/my.cnf' is ignored Warning: World-writable config file '/etc/my.cnf' is ignored MySQL manager or server PID file could not be found![FAILED]  

四、Access denied for user:’red@localhost’ to database ‘newbbs’?

查看my.cnf的权限

翻译:顾客 red在localhost
服务器上一向不权力操作数据库newbbs?深入分析:这一个提醒和难点三是差别的。这几个是在连年数据库的时候就被拦截了,而这一个指鹿为马是在对数据库实行操作时引起的。举个例子在selectupdate等等。这一个是因为该顾客并没有操作数据库相应的权柄。比如select
那么些操作在mysql.user.Select_priv里记录 Y 能够操作N
不得以操作。?消弭:若是是友善的独立主机那么更新mysql.user
的附和客户记录,举例此处要更新的客户为red 。大概直接修改./config.inc.php
为其陈设一个全数对数据库操作权限的客商?只怕通过如下的授命来更新授权grantall
privileges on dbname.* to ‘user’@’localhost’ identified by
‘password’?提醒:更新了mysql库中的记录必定要重启mysql服务器技巧使改正生效?FLUSH
PPAJEROIVILEGES;

[root@ttlsa ~]# ls -l /etc/my.cnf -rwxrwxrwx 1 root root 4878 Jul 30 11:31 /etc/my.cnf  

五、No Database Selected

权限777,任何叁个客户都足以改my.cnf,存在超级大的安全祸患.

?翻译:未有数据库被增选上?分析:发生的案由有二种?config.inc.php
里面$dbname设置的不法则。招致数据库根本一纸空文,所以在$db->select_db;
时重返了false?和地点难点四是风度翩翩致的,数据库用户未有select权限,相像会促成那样的乖谬。当您发现config.inc.php的设置未有其余难题,但照旧提醒这一个错误,那必定会将正是这种情状了。?消除:对症发药?打开config.inc.php找到$dbname核算重新配置并保留?同主题材料四的减轻方式

减轻方案:

六、Can’t open file:’xxx_forums.MYI’.

修复MySQL问题

翻译:不能够开辟xxx_forums.MYI?难点剖判:?这种情景是不能够展开cdb_forums.MYI
变成的,引起这种境况或然的自始至终的经过有:?1、服务器非日常关机,数据库所在空间已满,或一些任何未知的缘由,对数据库表形成了损坏。?2、类
unix
操作系统下直接将数据库文件拷贝移动会因为文件的属组难题而发出那些指鹿为马。?消除措施:?1、修复数据表?可以选拔上边包车型的士三种形式修复数据表:?1卡塔 尔(阿拉伯语:قطر‎使用
myisamchk ,MySQL自带了特意客户数据表检查和修复的工具 —— myisamchk
。修正当前目录到MySQL/bin 下边,经常情况下唯有在这里个上面技能运作
myisamchk 命令。常用的修补命令为:myisamchk-r
数据文件目录/数据表名.MYI;?2卡塔 尔(阿拉伯语:قطر‎通过 phpMyAdmin 修复,phpMyAdmin
带有修复数据表的功效,走入到某二个表中后,点击“操作”,在江湖的“表维护”中点击“修复表”就能够。?注意:以上三种修复形式在举办前肯定要备份数据库。?2、修正文件的属组复制数据库文件的历程中绝非将数据库文件设置为MySQL
运营的帐号可读写(日常适用于 Linux和 FreeBSD 用户卡塔 尔(阿拉伯语:قطر‎。

[root@ttlsa ~]# chmod 644 /etc/my.cnf 

七、Table’test.xxx_sessions’ doesn’t exist

my.cnf设置为客户可读写,别的客户不可写.

?翻译:xxxxx表不设有?分析:在执行sql语句时并未找到表,譬如:SELECT *
FROMxxx_members WHERE uid=’XX’
这里假使表xxx_members子虚乌有于$dbnameCurry,那么就能唤醒这么些张冠李戴。具体可分为以下二种情况来商量:?安装插件大概hack时修正了前后相继文件,而忘记了对数据库作相应的晋级。?后台使用了不完全备份,导入数据时并未导入到已经设置了对应版本的论坛的数据库中。?解决:
相符量力而行,不一样的原因见仁见智的管理办法。?稳重相比较插件笔者提供的设置表明,把疏漏的对数据库的操作补上,要是照旧不可能消除难点,那么应该嫌疑该插件的可用性了。去咨询一下插件作者,或许将其卸载。?不要张冠李戴,多大的脚就穿多大的鞋。一言以蔽之使得程序文件和数据库配套就能够.

2.Can’t connect to MySQL server on ‘localhost’ (10061)

八、Unknown column’column_name’ in ‘field list’

原因

翻译:未知的字段名column_name?剖判:在推行sql语句是现身了点名表中没有的字段名称,就能够现身那一个张冠李戴。具体诱致的缘故可分为以下二种?安装插件只怕hack时更改了先后文件,而遗忘了对数据库作相应的进级。?程序文件和数据库不配套,例如d2.5的数据库配置给d4.1的前后相继来用分明汇合世那么些指鹿为马。?死灭:
招致的因由和难点八的1和 3是同等的,所以消除措施也同样。

无法三翻五次到 localhost 上的mysql

九、You have an error in yourSQL syntax

解决方案:

翻译:有叁个语法错误在你的sql中?解析:论坛规范的次第是平素不sql语法错误的。所导导致那几个指鹿为马的因由通常就两类?安装插件或随意改良程序。?差异的数据库版本数据库导出导入,例如MySQL4.1的数码在导出的说话包含了MySQL4.0并未有的效率,像字符集的设定,那个时候即使将那么些sql导入到MySQL4.0的时候就能够发出sql语法错误。?搞定:?细心检查见到底是哪个地方的大错特错,将其纠正,实在极其就用标准程序把失误的先后替换。?在数据库备份的时候要在乎,如若不筹划倒入到别的版本的mysql中则不用特别思谋,反之要优秀的设定。使用DZ4.1的后台数据备份,能够据守提醒去设定想要的格式。独立主机的也能够在随地的时候将其导出为mysql4.0的格式。?mysqldump
-uroot -p–default-character-set=latin1 –set-charset=gbk –skip-opt
databse >test.sql

那注脚“localhost”Computer是存在的,但在此台机械上却没提供MySQL服务。

十、Duplicate entry ‘xxx’for key 1

内需运营那台机械上的MySQL服务,假设电话负载太高没空相应央求也会爆发那些荒谬。

翻译:插入
xxx使索引1重复?解析:索引即使是primaryunique这两三种,那么数据表的数量对应的这几个字段就亟须确定保障其每条记下的唯后生可畏性。不然就能够产生这几个荒谬。?平常爆发在对数据库写操作的时候,比如Discuz!4.1论坛程序必要全部会员的顾客名username必需唯风姿洒脱,即username的目录是unique,此时若是强行往cdb_members表里插入二个本来就有个别username的记录就能够发上这几个似是而非,大概将一条记下的username更新
为已部分多少个username。?改造表结构的时候也是有希望招致那个荒谬。例如Discuz!4.0论坛的数据库中cdb_members.username的索引类型是index这时是同意有相符username的笔录存在的,在进级到4.1的时候,因为要将username的目录由原先的index变
为unique。如果这个时候cdb_members里存在有相似的username的笔录,那么就能引发那么些张冠李戴。?导出数据据时有的时候会因为部分原因招致同一条记下被重复导出,那么那些备份数据在导入的时候现身那几个错误是难免的了。?修正了auto_increment的值,诱致“下多个Autoindex”为一条已经存在的笔录?湮灭:
两种思路,一是磨损掉唯后生可畏性的目录。二是把重复的数目记录用干部掉,只保留一条。很生硬第风姿洒脱种思路是不可取的。那么根据二的思路大家得出以下两种缓和方式,对应上边的i
iiiii?略?依据不当提示里的消息到数据库元帅重复的笔录删除,仅保留一条就可以。之后继续试行晋级操作。?这种景况产生的概率非常的小,能够用文件编辑器张开备份文书档案,查找重复的音讯。将其剩余的拿掉,仅保留一条就能够。?查询出表中auto_increment最大的一条记下,设置auto_incerment比其大学一年级就能够。?PS:repaire
table “表名“,能够一时减轻难点。

鸡犬不留:既然未有运行那就去运行这台机子的mysql。若是开发银行不成事,大多是因为您的my.ini配置的有标题。重新配置其就可以。

十一、 Duplicate key name’xxx’

设若以为mysql负载十分,可以到mysql/bin 的目录下实施mysqladmin -uroot
-p123 processlist来查阅mysql当前的经过。

?翻译:索引名重复?分析:要开创的目录已经存在了,就能够掀起那几个似是而非,那么些张冠李戴多产生在进级的时候。恐怕是已经提拔过的,重复晋级引起的谬误。也可能有希望是在此以前顾客专断加的目录,适逢其时与晋级文件中的所以风流倜傥律了。?湮灭:
看看已经存在的目录和要充足的目录是还是不是相像,相似的话可以跳过那条sql语句,假诺不平等那么现删除已存在的所以,之后再实行。

3.Unknown MySQL Server Host ‘localhosadst’ (11001)

十二、 Duplicate column name’xxx’

原因

?翻译:字段名xxx重复?解析:增添的字段xxx已经存在,多产生在进级进程中,与主题素材十一的发出是后生可畏致的。?解决:
看一下已经存在的字段是或不是和将在加多的字段属性完全雷同,假设同样则足以跳过不推行那句sql,若是不等同则删除掉这几个字段。之后继续实行进级程序。

不解的MySQL服务器 localhosadst,服务器 localhosasdst
不设有。也许根本不能连接。

十三、 Table ‘xxx’ alreadyexists

除恶务尽方案:

?翻译:数据表xxx已经存在?深入分析:xxx表已经存在于库中,再一次筹算成立那些名字的表就能够抓住那个荒谬。相同多产生在论坛的进级换代中。相仿于难题十七。?灭亡:
看看已经存在的表是还是不是和将要创制的表完全意气风发致,同样的话能够跳过不实践那个sql,不然请将存在的表先删除,之后继续推行进级文件。

有心人检查自身论坛上面包车型大巴 ./config.inc.php 找到$dbhost重新安装为科学的mysql
服务器地址。

十四、 Can’t create database’xxx’. Database exists

4.Access denied for user: ‘roota@localhost’ (Using password: YES)

翻译:不能够创制数据库xxx,数据库已经存在?深入分析:二个mysql下边包车型客车数据库名称必需保险唯黄金时代性,不然就能够有那些错误。?化解:把已经存在的数据库改名只怕把就要创立的数据库改名,综上说述不让他们的称谓冲突。

原因

十五、 小结

客商 roota 访问 localhost
被驳倒(未有允许通过),造成这几个张冠李戴平日数据库顾客名和密码相对mysql服务器不正确

该类难题失实提醒中都隐形二个至关主要词duplicate?那么对于mysql数据库来讲什么东西是不能够重新的呢??数据库
database?同贰个数据库下多少表table?同二个数码表下字段
column?同贰个数额表下索引
key?同二个数据表在目录唯豆蔻梢头的情况下记录中的这么些字段不得以重新

建设方案:

十六、Unknown system variable’NAMES’

有心人检查本人论坛上面包车型地铁 ./config.inc.php
找到$dbuser、$dbpw核算后再次安装保存就能够。

?翻译:未知的种类变量NAMES?深入分析:Mysql版本不接济字符集设定,那时粗犷设定字符集就能够冒出那么些荒谬。?解决:
将sql语句中的SET NAMES ‘xxx’ 语句去掉

5.Access denied for user: ‘red@localhost’ to database ‘newbbs’

十七、 Lost connection toMySQL server during query?

原因

翻译:MySQL服务器失去连接在查询时期?解析:远程连接数据库是有时会有其后生可畏主题素材。MySQL服务器在实践一条sql语句的时候失去了一而再三番四遍产生的。?消除:
日常没有必要怎么去管理,倘使频繁的出现那么思考改过硬件条件。

客户 red 在localhost 服务器上从未有过权限操作数据库newbbs

十八、User ‘red’ has exceededthe ‘max_updates’ resource

本条提醒和主题材料三是莫衷一是的。那贰个是在接二连三数据库的时候就被阻止了,而以此错误是在对数据库进行操作时引起的。比方在select
update等等。那一个是因为该客户未有操作数据库相应的权能。比方select
这一个操作在mysql.user.Select_priv里记录 Y 可以操作N 不得以操作。

翻译:msql顾客red已经超(英文名:jīng chāo卡塔尔国越了’max_updates’,’max_questions’,’max_connections’,当前设定为500?剖判:在mysql数据库的下有多少个库为mysql,它里面有二个表为user这里面包车型客车记录每一条都对应该为多少个mysql客户的授权。当中字段max_questions
max_updates max_connections分别记录着最大查询次数 最大立异数
最奥斯汀接数,当方今的别的叁个参数大于其余一个设定的值就能够发出这么些指鹿为马。?消除:
独立主机客户能够向来改善授权表。改进完之后重启mysql只怕跟新授权表,步入mysql提醒符下实施?FLUSH
P宝马X3IVILEGES;?记得后边要有分号’;’?设想主机的顾客借使连接现身这么些标题可找空间商协商消除。

化解方案:

十五、Too many connections链接过多?

倘诺是温馨的单身主机那么更新mysql.user
的呼应顾客记录,比方此处要翻新的客户为red 。或许直接校正./config.inc.php 为其铺排叁个存有对数据库操作权限的客户

翻译:达到最达累斯萨Lamb接数?难点浅析:?连接数超越了mysql设置的值,与max_connections和wait_timeout
都有涉嫌。wait_timeout的值越大,连接的空余等待就越长,那样就能招致如今连接数越大?解决办法:?1.虚拟主机客商请联系空间商优化MySQL
服务器的安插;?2.单独主机顾客请联系服务器管理员优化MySQL
服务器的陈设,可参谋:?修正MySQL 配置文件 my.ini 也许 my.cnf
中的参数:?max_connections= 1000?wait_timeout = 10?改进后重启 MySQL
,假如平时性的报此错误,请做一下服务器的总体优化。

依旧通过如下的下令来更新授权grant all privileges on dbname.* to
‘user’@’localhost’ identified by ‘password’

二十、There is no such grantdefined for user ‘%s’ on host ‘%s’?

提示:更新了mysql库中的记录必供给重启mysql服务器技术使更改生效

怪诞编号:1141?难点剖析:?MySQL当前客户无权访问数据库。?化解措施:?1、设想主机客商请联系空间商,确认给您提供的帐号是还是不是有授权数据库的权能。?2、独立主机客商请联系服务器管理员,确认给您提供的数据库帐号是还是不是有保管此数据库的权限。

6.No Database Selected

二十一、Error on rename of ‘%s’to ‘%s’ ?error.:1025?

原因

标题深入分析:?请检查一下您的主次是不是有涂改数据库表名的说话。?消除措施:?1.请检查你的次序中哪些地点必要修正数据库表名;?2.要是您的实际利用确实必要修正到数据库表名的话,请联系空间商可能服务器管理员给你开放矫正库名的权限和服务器自个儿是还是不是正规。

产生的原故有二种。

二十二、Error reading file ‘%s’?error.:1023?

config.inc.php 里面$dbname设置的畸形。招致数据库根本不设有,所以在
$db->select_db($dbname); 时重回了false

主题材料浅析:?数据库文件不可能被读取。?清除方法:?1.设想主机客户请联系空间商查看数据库是还是不是完整。?2.单独主机顾客请联系服务器管理员检查一下MySQL
本人是不是健康, MySQL 是或不是能够读取文件,Linux 顾客能够检查一下MySQL
的数据库文件的属主是或不是科学以致小编的文本是不是损坏。

和方面难点四是同等的,数据库顾客并没有select权限,肖似会产生那样的大谬不然。当你意识config.inc.php的设置没有其余难点,但要么提醒那几个荒谬,那必定将正是这种境况了。

二十三、Host ‘*****’ is blockedbecause of many connection errors;
unblock with ‘mysqladmin flush-hosts’?error.:1129

消除方案:

标题浅析:?数据库现身至极,请重启数据库。?化解措施:?1.
由于存在大多连连错误,主机’****’被挡住,虚构主机客商请联系空间商管理,独立主机顾客请联系服务器管理员,在MySQL
的指令调节台下实行’mysqladmin flush-hosts’淹没屏蔽就能够,大概重启MySQL
数据库

量体裁衣

二十四、dropping database (can’tdelete ‘%s’, errno: %d)?error.:1009?

开拓config.inc.php 找到$dbname核准重新配置并保留

标题浅析:?不可能去除数据库文件,诱致删除数据库退步。?消除方法:?1.检查你使用的数据库管理帐号是或不是有权力删除数据。?2.检查数据库是或不是存在。

同主题素材四的缓慢解决办法

二十五、Got error 28 from tablehandler?error.:1030?

7.Can’t open file: ‘xxx_forums.MYI’. (errno: 145)

主题材料浅析:?数据库所在磁盘空间已满。?杀绝措施:?1.虚构主机客户请联系空间商扩张MySQL
所在的磁盘空间只怕清理一些无效文件;?2.单独主机客商请联系服务器管理员扩充MySQL
所在的磁盘空间或许清理一些不行文件

原因

二十六、Can’t create a newthread; if you are not out of available
memory, you can consult the manual fora possible OS-dependent
bug。?error.:11/35?

这种气象是不能够开荒 cdb_forums.MYI 产生的,引起这种景况恐怕的源委有:

主题素材浅析:?数据库服务器难题,数据库操作不能够创建新线程。经常是四个原因:?1.服务器系统内部存款和储蓄器溢出。?2.情状软件破坏或体系损坏。?肃清形式:?1.虚构主机客商请联系下空间商数据库服务器的内部存储器和系统是或不是平常。?2.单独主机客商请联系服务器管理员检查服务器的内部存款和储蓄器和种类是不是正规,假设服务器内部存款和储蓄器恐慌,请检查一下哪些进度消耗了服务器的内部存款和储蓄器,同一时间思考是不是追加服务器的内部存款和储蓄器来巩固总体的载荷才能。

1、服务器非寻常关机,数据库所在空间已满,或一些此外未知的缘由,对数据库表造成了破坏。

二十七、Error: Client does notsupport authentication protocol
requested by server; consider upgrading MySQLclient?error.:1251?

2、类 unix
操作系统下直接将数据库文件拷贝移动会因为文件的属组难题而发出这几个错误。

主题材料深入分析:?假设你进级MySQL 到 4.1
以上版本后相见上述难题,请先鲜明你的MySQL Client 是 4.1
恐怕更加高版本(Windows下有时常你就径直跳到上边看消亡措施了,因为 MySQL
在Windows 是 client 和 server 一同装上了的)。?消除形式:?1.Windows
平台?首若是改造连接MySQL 的帐户的加密方法,MySQL 4.1/5.0 是经过PASSWO福睿斯D
这种艺术加密的。能够透过以下三种艺术获得化解:?1) mysql->SET PASSWOLANDD
FOSportage’some_user’@’some_host’=OLD_PASSWORD;?2) mysql->UPDATE
mysql.user SETPassword=OLD_PASSWORD WHERE Host=’some_host’
ANDUser=’some_user’;?2.Linux/Unix 平台?Linux平台下首先分明是还是不是安装过
MySQL 的客商端,那几个用 rpm安装非常粗大略,Linux 代码为:?rpm -ivh
MySQL-client-4.1.15-0.i386.rpm?然后在编写翻译 php
的时候要丰裕:?–with-mysql=/your/path/to/mysql?平时景况下都得以消除。借使还应际而生这种指鹿为马,能够死守上边包车型大巴措施来做:?mysql->SET
PASSWO大切诺基D FOLAND’some_user’@’some_host’=OLD_PASSWORD;?mysql->UPDATE
mysql.user SET Password=OLD_PASSWORDWHERE Host=’some_host’ AND
User=’some_user’;

竭泽而渔方案:

二十八、Error: Can’t connect tolocal MySQL server through socket
‘/var/lib/mysql/mysql.sock’?error.:2002?

1、修复数据表

标题分析:?现身那一个似是而非平常景色下是因为上边三个原因:?1.MySQL
服务器并未有张开。?2.MySQL 服务器开启了,但不能找到 socket
文件。?化解措施:?1.设想主机客户,请联系空间商确认数据库是不是经常运行。?2.单身主机顾客,请检查一下
MySQL 服务是不是曾经开启,未有开启,请运维MySQL 服务;即使已经展开,並且是
Linux 系统,请检查一下MySQL 的 socket 的路子,然后张开 config.inc.php
找到?$dbhost = ‘localhost’; 在hostname 前边加冒号‘:’和 MySQL 的socket
的路径。?举例MySQL 服务器为 localhost?MySQL的 socket 的路子为
/tmp/mysql.sock?那么就改成如下:?$dbhost= ‘localhost:/temp/mysql.sock’;

可以行使下边包车型地铁两种办法修复数据表:(第生机勃勃种艺术仅相符独立主机顾客)

二十九、Can’t connect to MySQLserver on ‘localhost’?error.:2003?

1)使用 myisamchk ,MySQL 自带了极度客商数据表检查和修补的工具 ——
myisamchk 。改正当前目录到 MySQL/bin
下边,日常情况下唯有在此个上边技艺运营 myisamchk
命令。常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI;

标题解析:?MySQL服务未有运转,经常是在足够的气象下 MySQL
不能起动招致的,举个例子无可用的磁盘空间,my.ini里 MySQL 的 basedir
路线设置错误等。?解决办法:?1.检查磁盘空间是或不是还应该有剩余可用空间,尽量有限支持有丰裕的磁盘空间可用。?2.检查
my.ini 里的basedir 等参数设置是不是精确,然后重新启航下 MySQL 服务。

2)通过 phpMyAdmin 修复, phpMyAdmin
带有修复数据表的作用,走入到某一个表中后,点击“操作”,在红尘的“表维护”中式茶食击“修复表”就可以。

三十、Lost connection to MySQLserver during query?error.:2013

注意:以上二种修复格局在实行前确定要备份数据库。

?难点浅析:?数据库查询进程中错失了与MySQL
服务器的连接。?消除办法:?1.请确认您的程序中是或不是有效能异常低的程序,譬如一些插件,可以卸载掉插件,检查一下服务器是不是健康;?2.服务器本人财富恐慌,虚构主机客户请联系空间商确认,独立主机客商请联系服务器助理馆员,检查一下服务器是不是平常。

2、更改文件的属组(仅适合独立主机客商)

三十一、Got a packet bigger than’max_allowed_packet’ bytes?

复制数据库文件的进度中尚无将数据库文件设置为 MySQL
运转的帐号可读写(日常适用于 Linux 和 FreeBSD 客户)。

张冠李戴编号:1153?难题浅析:调节了 Mantis 的上传附件的分寸却从没调动 MySQL
的布局文件。?消除办法:?1、独立主机客户请依照以下措施调解:?查找 MySQL
的配置文件?在[mysqld] 部分加多一句:?max_allowed_packet=10M?重启
MySQL 服务就能够了。这里安装的是 10MB。

8.Table ‘test.xxx_sessions’ doesn’t exist

翻译:xxxxx表不设有

原因

在实施sql语句时并未有找到表,举例:SELECT * FROM xxx_members WHERE
uid=’XX’
这里即使表xxx_members不设有于$dbnameCurry,那么就能够提示那一个怪诞。具体可分为以下三种景况来谈谈:

安装插件可能hack时订正了前后相继文件,而忘记了对数据库作相应的晋升。

后台使用了不完全备份,导入数据时不曾导入到已经设置了对应版本的论坛的数据库中。

技术方案:

同大器晚成见机而行,差异的原故见仁见智的管理方式。

全面对比插件作者提供的装置表达,把脱漏的对数据库的操作补上,要是依然不可能一蹴即至难题,那么相应质疑该插件的可用性了。去问问一下插件我,大概将其卸载。

不要指鹿为马,多大的脚就穿多大的鞋。由此可知使得程序文件和数据库配套就能够.

9.Unknown column ‘column_name’ in ‘field list’

原因

在推行sql语句是出新了内定表中未有的字段名称,就能鬼使神差这么些荒谬。具体引致的缘故可分为以下二种安装插件或然hack时改善了程序文件,而忘记了对数据库作相应的进级。

先后文件和数据库不配套,比如d2.5的数据库配置给d4.1的次序来用肯定会现身那些荒诞。

一网打尽方案:

造成的开始和结果和主题素材八的1和 3是相通的,所以消除办法也相近。

10.You have an error in your SQL syntax

原因

论坛典型的主次是还未sql语法错误的。所以形成这一个错误的来头平常就两类:安装插件或自由修改程序。

昔不近日的数据库版本数据库导出导入,举个例子MySQL4.1的多少在导出的话语包括了MySQL4.0尚无的意义,像字符集的设定,那时候即便将这么些sql导入到MySQL4.0的时候就能爆发sql语法错误。

抽薪止沸方案:

紧凑检查见到底是什么地方的大错特错,将其改过,实在特别就用规范程序把失误的前后相继替换。

在数据库备份的时候要小心,假如不许备倒入到别的版本的mysql中则不用特殊考虑,反之要新鲜的设定。使用DZ4.1的后台数据备份,能够依据提醒去设定想要的格式。独立主机的也足以在大街小巷的时候将其导出为mysql4.0的格式。

mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk
–skip-opt databse > test.sql

11.Duplicate entry ‘xxx’ for key 1

翻译:插入 xxx 使索引1重复

原因

目录若是是primary
unique这两三种,那么数据表的数码对应的那个字段就亟须确定保障其每条记下的唯后生可畏性。不然就能够产生那几个荒唐。

诚如发生在对数据库写操作的时候,比方Discuz!4.1论坛程序要求具有会员的客商名username必需唯风姿罗曼蒂克,即username的目录是
unique,这时候假若强行往cdb_members表里插入二个本来就有的username的笔录就能够发上这几个似是而非,或然将一条记下的username更新
为已部分一个username。

变动表结构的时候也是有希望招致那个荒诞。例如Discuz!4.0论坛的数据库中cdb_members.username
的索引类型是index那时候是同意有相仿username的笔录存在的,在升高到4.1的时候,因为要将username的目录由原来的index变
为unique。倘若此刻cdb_members里存在有平等的username的笔录,那么就能够吸引这几个错误。

导出数据据时有的时候会因为部分缘故(小编方今还不知底)引致同一条记下被重新导出,那么那么些备份数据在导入的时候现身这么些乖谬是免不了的了。

修改了auto_increment的值,诱致“下一个 Autoindex”为一条已经存在的记录。

解决方案:

三种思路,一是破坏掉唯意气风发性的目录。二是把重复的数据记录用干部掉,只保留一条。很引人瞩目第大器晚成种思路是不可取的。那么依据二的思路大家得出以下两种减轻措施,对应上边包车型地铁i
ii iii

安份守己不当提醒里的消息到数据库上校重复的记录删除,仅保留一条就能够。之后继续奉行晋级操作。

这种情况时有爆发的可能率十分小,能够用文件编辑器张开备份文书档案,查找重复的音讯。将其多余的拿掉,仅保留一条就可以。

查询出表中auto_increment最大的一条记下,设置auto_incerment比其大学一年级就能够。

PS:repaire table “表名“,能够暂且减轻难题。

12.Duplicate key name ‘xxx’

翻译:索引名重复

原因

要成立的目录已经存在了,就能够抓住这么些指鹿为马,那些指鹿为马多爆发在进步的时候。恐怕是已经升任过的,重复进级引起的错误。也许有比相当的大概率是事先客商私下加的目录,刚巧与提拔文件中的所以意气风发律了。

消灭净尽方案:

拜见已经存在的目录和要加上的目录是不是近似,同样的话能够跳过那条sql语句,如若不风姿罗曼蒂克致那么现删除已存在的之所以,之后再进行。

13.Duplicate column name ‘xxx’

翻译:字段名xxx重复

原因

加多的字段xxx已经存在,多发生在晋级历程中,与难点十三的爆发是同风流罗曼蒂克的。

解决方案:

看一下业已存在的字段是还是不是和就要增多的字段属性完全相仿,假若相仿则可以跳过不实施那句sql,如若不风姿洒脱致则删除掉那个字段。之后继续推行晋级程序。

14.Table ‘xxx’ already exists

翻译:数据表xxx已经存在

原因

xxx表已经存在于库中,再一次希图创设这些名字的表就能够迷惑这几个指鹿为马。同样多发生在论坛的进级中。相仿于难点十四。

技术方案:

拜访已经存在的表是不是和将在创立的表完全等同,同样的话能够跳过不践行那些sql,否则请将存在的表先删除,之后继续推行晋级文件。

15.Can’t create database ‘xxx’. Database exists

不能够创建数据库xxx,数据库已经存在

原因

叁个mysql上边包车型客车数据库名称必需确认保障唯风流浪漫性,否则就能够有那么些张冠李戴。

杀鸡取卵方案:

把曾经存在的数据库改名或者把就要创制的数据库改名,由此可以预知不让他们的称号矛盾。

16.小结(针对难点 1112131415)

此类主题素材失实提醒中都隐形二个重大词duplicate(重复)

那么对于mysql数据库来讲什么事物是无法重新的啊?

数据库 database

同叁个数据库下数据表 table

同多个数据表下字段 column

同三个数目表下索引 key

同三个数据表在目录唯生龙活虎(UNIQUE P3 WheelerIMA中华VY)的意况下记录中的那个字段不得以重复

17.Unknown system variable ‘NAMES’

翻译:未知的种类变量NAMES

原因

Mysql版本不扶植字符集设定,那时粗犷设定字符集就会师世那些荒谬。

缓和方案:

将sql语句中的SET NAMES ‘xxx’ 语句去掉

18.Lost connection to MySQL server during query

翻译:MySQL服务器失去连接在查询期间

原因

长距离连接数据库是有的时候会有这些主题材料。MySQL服务器在实施一条sql语句的时候失去了三番三次形成的。

施工方案:

平常无需怎么去管理,假若一再的产出那么思索纠正硬件景况。

19.User ‘red’ has exceeded the ‘max_updates’ resource (current value:
500)

翻译:msql顾客red已经超(Jing Chao卡塔 尔(阿拉伯语:قطر‎过了’max_updates'(最大改良次数),’max_questions'(最大查询次数),’max_connections'(最利兹接数),当前设定为500

原因

在mysql数据库的下有二个库为mysql,它里面有贰个表为user这里面包车型大巴纪要每一条都对应该为二个mysql顾客的授权。在那之中字段
max_questions max_updates max_connections分别记录着最大查询次数
最大立异数
最菲尼克斯接数,当近年来的其余二个参数大于别的二个设定的值就会时有发生那一个荒诞。

消除方案:

单独主机客户可以直接改正授权表。校正完事后重启mysql或许跟新授权表,踏向mysql提醒符下实行FLUSH
PHighlanderIVILEGES;

记得前边要有事务部’;’

虚构主机的客户意气风发旦总是出现这一个标题可找空间商协商扫除。

20.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 ,若是平常性的报此错误,请做一下服务器的总体优化。

21.There is no such grant defined for user ‘%s’ on host ‘%s’

谬误编号:1141

原因

MySQL 当前顾客无权访问数据库。

斩尽杀绝方案:

1、虚构主机客商请联系空间商,确认给您提供的帐号是不是有授权数据库的权杖。

2、独立主机客户请联系服务器管理员,确认给你提供的数据库帐号是或不是有保管此数据库的权限。

22.Error on rename of ‘%s’ to ‘%s’ (errno: %d)

error.:1025

原因

请检查一下您的次第是还是不是有涂改数据库表名的讲话。

建设方案:

1.请检查你的次第中哪些地点供给改正数据库表名;

2.只要您的莫过于行使确实需求修改到数据库表名的话,请联系空间商恐怕服务器管理员给您开放纠正库名的权柄和服务器自身是或不是正规。

23.Error reading file ‘%s’ (errno: %d)

error.:1023

原因

数据库文件不可能被读取。

缓和方案:

1.设想主机客户请联系空间商查看数据库是或不是完全。

2.独门主机顾客请联系服务器管理员检查一下 MySQL 本人是否正规, MySQL
是还是不是足以读取文件,Linux 客户能够检查一下 MySQL
的数据库文件的属主是不是正确以至自己的文书是或不是损坏。

24.Host ‘*****’ is blocked because of many connection errors;
unblock with ‘mysqladmin flush-hosts’

error.:1129

原因

数据库现身非常,请重启数据库。

解决方案:

由于存在超级多连连错误,主机’****’被挡住,虚构主机客商请联系空间商管理,独立主机顾客请联系服务器管理员,在
MySQL 的指令调整台下实施’mysqladmin flush-hosts’清除屏蔽就能够,大概重启
MySQL 数据库。

25.dropping database (can’t delete ‘%s’, errno: %d)

error.:1009

原因

无法去除数据库文件,导致删除数据库战败。

鸡犬不留方案:

1.反省你使用的数据库管理帐号是还是不是有权力删除数据。

2.反省数据库是还是不是留存。

26.Got error 28 from table handler

error.:1030

原因

数据库所在磁盘空间已满。

缓慢解决方案:

1.虚构主机客商请联系空间商扩大 MySQL 所在的磁盘空间大概清理一些不行文件;

2.独自己作主机客商请联系服务器管理员增添 MySQL
所在的磁盘空间或许清理一些失效文件

27.Can’t create a new thread; if you are not out of available memory,
you can consult the manual for a possible OS-dependent bug。

error.:11/35

原因

数据库服务器难点,数据库操作不能够制造新线程。日常是七个原因:

1.服务器系统内部存款和储蓄器溢出。

2.蒙受软件破坏或种类损坏。

解决方案:

1.虚构主机用户请联系下空间商数据库服务器的内部存储器和系统是还是不是健康。

2.独自己作主机客商请联系服务器助理馆员检查服务器的内部存款和储蓄器和类别是不是健康,假设服务器内部存款和储蓄器恐慌,请检查一下哪些进度消耗了服务器的内部存款和储蓄器,同一时间思虑是否扩大服务器的内部存款和储蓄器来增加全体的载重技艺。

28.Error: Client does not support authentication protocol requested by
server; consider upgrading MySQL client

error.:1251

原因

譬如你晋级 MySQL 到 4.1 以上版本后相见上述难点,请先分明你的 MySQL Client
是 4.1 或许越来越高版本( Windows 下不日常你就径直跳到上面看消释方法了,因为
MySQL 在 Windows 是 client 和 server 一齐装上了的)。

削株掘根方案:

  1. Windows 平台

要害是改动连接 MySQL 的帐户的加密方法,MySQL 4.1/5.0 是经过 PASSWO奥迪Q3D
这种艺术加密的。能够透过以下二种艺术得到解决:

1) mysql->SET PASSWORD FOR
‘some_user’@’some_host’=OLD_PASSWORD(‘new_password’);

2) mysql->UPDATE mysql.user SET
Password=OLD_PASSWORD(‘new_password’) WHERE Host=’some_host’ AND
User=’some_user’;

  1. Linux/Unix 平台

Linux 平台下首先鲜明是还是不是安装过 MySQL 的客户端,那几个用 rpm
安装超粗略,Linux 代码为:

rpm -ivh MySQL-client-4.1.15-0.i386.rpm

接下来在编译 php 的时候要抬高:

–with-mysql=/your/path/to/mysql

常常景色下都足以减轻。借使还应时而生这种错误,能够依据上边的方法来做:

mysql->SET PASSWORD FOR
‘some_user’@’some_host’=OLD_PASSWORD(‘new_password’);

mysql->UPDATE mysql.user SET Password=OLD_PASSWORD(‘new_password’)
WHERE Host=’some_host’ AND User=’some_user’;

29.Error: Can’t connect to local MySQL server through socket
‘/var/lib/mysql/mysql.sock’

error.:2002

原因

并发那个荒诞日常意况下是因为下边多少个原因:

1.MySQL 服务器并未有拉开。

2.MySQL 服务器开启了,但无法找到 socket 文件。

减轻方案:

1.虚构主机顾客,请联系空间商确认数据库是或不是符合规律运转。

2.单独主机客商,请检查一下 MySQL 服务是还是不是早就开启,未有展开,请运维MySQL 服务;要是已经拉开,並且是 Linux 系统,请检查一下 MySQL 的 socket
的门路,然后展开 config.inc.php 找到

$dbhost = ‘localhost’; 在 hostname 前面加冒号‘:’和 MySQL 的 socket
的门路。

诸如 MySQL 服务器为 localhost

MySQL 的 socket 的不二秘技为 /tmp/mysql.sock

这正是说就改成如下:

$dbhost = ‘localhost:/temp/mysql.sock’;

30.Can’t connect to MySQL server on ‘localhost’

error.:2003

原因

MySQL 服务未有运维,经常是在特别的情形下 MySQL
不可能起动引致的,比方无可用的磁盘空间,my.ini 里 MySQL 的 basedir
路线设置错误等。

消除方案:

1.反省磁盘空间是还是不是还应该有剩下可用空间,尽量保持有足够的磁盘空间可用。

2.反省 my.ini 里的 basedir 等参数设置是或不是准确,然后再一次开动下 MySQL
服务。

31.Lost connection to MySQL server during query

error.:2013

原因

数据库查询进度中错失了与 MySQL 服务器的连续几天。

应用方案:

1.请确认您的顺序中是不是有功效相当的低的前后相继,譬喻一些插件,能够卸载掉插件,检查一下服务器是或不是正规;

2.服务器本人财富紧张,设想主机客户请联系空间商确认,独立主机客户请联系服务器管理员,检查一下服务器是或不是正规。

32.Got a packet bigger than ‘max_allowed_packet’ bytes

不当编号:1153

原因

调动了 Mantis 的上传附属类小零器件的分寸却未有调解 MySQL 的安顿文件。

缓和方案:

1、独立主机顾客请遵照以下措施调治:

探索 MySQL 的布局文件(my.cnf 恐怕 my.ini)

在 [mysqld] 部分增加一句(倘诺存在,调治其值就足以):

max_allowed_packet=10M

重启 MySQL 服务就能够了。这里安装的是 10MB。

2、设想主机客户请联系空间商调整此参数。

【编辑推荐】