奇矩互动官方论坛's Archiver

下砂 发表于 2008-4-8 22:57

mysql常见错误及分析解决参考方法

Can't open file: 'cdb_forums.MYI'. (errno: 145)
问题分析:
这种情况是不能打开 cdb_forums.MYI 造成的,引起这种情况可能的原因有:
1.服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2.类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组的问题而产生这个错误。

解决方法:
1.修复数据表。
可以使用下面的三种方式修复数据表:
1) 通过tools.php修复   个文件在 Discuz! 程序解压后得到的 utilities 文件夹里或者到 <a href="http://www.discuz.net/thread-761181-1-1.html" target="_blank">[url=http://www.discuz.net/thread-761181-1-1.html%3C]http://www.discuz.net/thread-761181-1-1.html<[/url];/a> 下载,上传到服务器的论坛目录下,然后通过 http://论坛地址/tools.php 访问。
2) 使用myisamchk  MySQL自带了专门用户数据表检查和修复的工具—— myisamchk 。更改当前目录到 mysql/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。
常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI
3) 通过phpmyadmin修复  phpmyadmin带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上三种修复方式在执行前一定要备份数据库。
2.修改文件的属组。

下砂 发表于 2008-4-8 22:57

There is no such grant defined for user '%s' on host '%s'
error.:1141
问题分析:
MySQL 当前用户无权访问数据库。

解决方法:
1.虚拟主机用户请联系空间商,确认给你提供的帐号是否有授权数据库的权限。
2.独立主机用户请联系服务器管理员,确认给您提供的数据库帐号是否有管理此数据库的权限。

下砂 发表于 2008-4-8 22:58

Error on rename of '%s' to '%s' (errno: %d)
error.:1025
问题分析:
请检查一下您的程序是否有修改数据库表名的语句。

解决方法:
1.请检查您的程序中哪些地方需要修改数据库表名;
2.如果您的实际应用确实需要修改到数据库表名的话,请联系空间商或者服务器管理员给您开放修改库名的权限和服务器本身是否正常。

下砂 发表于 2008-4-8 22:58

Incorrect information in file: '%s'
error.:1033
问题分析:
论坛根目录下的 config.inc.php 文件里的 $dbhost 填写不正确。

解决方法:
1.虚拟主机用户请联系空间商确认此项,一般填写“localhost”。
2.独立主机用户请联系服务器管理员检查此项是否填写正确,如果 MySQL 和 Web 是同台服务器的话,一般填写“localhost”,如果不是同台服务器,请填写 MySQL 服务器的 ip 地址,同时确保在 WEB 端能连接到数据库端。

下砂 发表于 2008-4-8 22:59

Error reading file '%s' (errno: %d)
error.:1023
问题分析:
数据库文件不能被读取。

解决方法:
1.虚拟主机用户请联系空间商查看数据库是否完好。
2.独立主机用户请联系服务器管理员检查一下 MySQL 本身是否正常, MySQL 是否可以读取文件,Linux 用户可以检查一下 MySQL 的数据库文件的属主是否正确以及本身的文件是否损坏。

下砂 发表于 2008-4-8 22:59

Unknown column '%s' in '%s'
error.:1054
问题分析:
1.程序和数据库不统一。
2.修改了论坛的某些程序,而数据库中相应字段未作升级。
3.论坛升级未完成。

解决方法:
1.检查一下程序和数据库是否统一,比如都是 Discuz!6.0 版本;
2.检查一下修改程序的过程中(比如安装插件)是否漏掉了其中的步骤;
3.论坛升级未完成的话,继续升级论坛,如果无法继续升级,请恢复数据备份重新开始升级。

下砂 发表于 2008-4-8 23:00

Duplicate entry '%s' for key %d
error.:1062
问题分析:
向唯一字段插入相同数据。
解决方法:
1.请检查程序是否做了修改。
2.如果您正在转移数据库,请确认数据库的版本是否相同。
3.如果以上方法还未解决,请恢复备份,用 [url]http://www.discuz.net/viewthread.php?tid=129707[/url]   DBCheck工具 将数据库检验为标准结构。

下砂 发表于 2008-4-8 23:00

No database selected
error.:1046
问题分析:
论坛根目录下的配置文件 config.inc.php 的 $dbname 项填写错误。

解决方法:
检查论坛根目录下的配置文件 config.inc.php 的 $dbname 项是否正确,如果是独立主机,请联系服务器管理员确认真实的管理员,如果是虚拟主机,请联系空间商确认正确的数据库名。

下砂 发表于 2008-4-8 23:01

Host '*****' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
error.:1129
问题分析:
数据库出现异常,请重启数据库。

解决方法:
1. 由于存在很多连接错误,主机'****'被屏蔽,虚拟主机用户请联系空间商处理,独立主机用户请联系服务器管理员,在 MySQL 的命令控制台下执行'mysqladmin flush-hosts'解除屏蔽即可,或者重启 MySQL 数据库。

下砂 发表于 2008-4-8 23:01

Can't create table './**/***.**'
error.:1005
问题分析:
创建数据表失败。

解决方法:
1.数据表是否已经存在。
2.检查正在使用的mysql用户是否具有创建数据表的权限。
3.检查这个表所在的数据库对应的文件是否具有可写权限。

下砂 发表于 2008-4-8 23:02

Can't create database 'db'
error.:1006
问题分析:
无法创建数据库,创建数据库失败。

解决方法:
1.虚拟主机用户请联系空间商,确保给您提供的数据库帐号能够在安装程序的时候创建数据库(一般空间商都是在虚拟主机控制面板里提供创建数据库,请跟空间商做一下确认)。
2.独立主机用户请联系服务器管理员,确认给您提供的数据库帐号有创建数据库的权限,如果已经有创建了数据库,请填写数据库名即可。

下砂 发表于 2008-4-8 23:03

Can't create database '%s'; database exists
error.:1007
问题分析:
数据库已存在,导致创建数据库失败。

解决方法:
1.虚拟主机用户请联系空间商,确认给你提供的帐号是否有创建数据库的权限,并且确认是否创建了已经存在的数据库(一般空间商都是在虚拟主机控制面板里提供创建数据库,请跟空间商做一下确认)。
2.独立主机用户请联系服务器管理员,确认给您提供的数据库帐号是否有管理此数据库的权限。

下砂 发表于 2008-4-8 23:04

Can't drop datebase '%s'; database doesn't exist
error.:1008
问题分析:
数据库不存在,导致数据库删除操作失败。

解决方法:
检查是否正确选择数据库,用 phpmyadmin 等工具查看是否存在该数据库。

下砂 发表于 2008-4-8 23:05

dropping database (can't delete '%s', errno: %d)
error.:1009
问题分析:
不能删除数据库文件,导致删除数据库失败。

解决方法:
1.检查您使用的数据库管理帐号是否有权限删除数据。
2.检查数据库是否存在。

下砂 发表于 2008-4-8 23:05

Record has changed since last read in table 'cdb_**'
error.:1020
问题分析:
MySQL 记录已被其他用户修改。

解决方法:
修复下数据库。
可以使用下面的三种方式修复数据表:
1) 通过tools.php修复 个文件在 Discuz! 程序解压后得到的 utilities 文件夹里或者到 [url]http://www.discuz.net/thread-761181-1-1.html[/url] 下载,上传到服务器的论坛目录下,然后通过 http://论坛地址/tools.php 访问。
2) 使用myisamchk MySQL自带了专门用户数据表检查和修复的工具—— myisamchk 。更改当前目录到 mysql/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。
常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI
3) 通过phpmyadmin修复 phpmyadmin带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上三种修复方式在执行前一定要备份数据库。

下砂 发表于 2008-4-8 23:06

Got error 28 from table handler
error.:1030
问题分析:
数据库所在磁盘空间已满。

解决方法:
1.虚拟主机用户请联系空间商增加 MySQL 所在的磁盘空间或者清理一些无用文件;
2.独立主机用户请联系服务器管理员增加 MySQL 所在的磁盘空间或者清理一些无用文件。

下砂 发表于 2008-4-8 23:07

Too many connections
error.:1040
问题分析:
连接数超过了mysql设置的值,与max_connections 和wait_timeout 都有关系。wait_timeout的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大

解决方法:
1.虚拟主机用户请联系空间商优化 MySQL 服务器的配置;
2.独立主机用户请联系服务器管理员优化 MySQL 服务器的配置,可参考:
修改 MySQL 配置文件 my.ini 或者 my.cnf 中的参数:
max_connections= 1000
wait_timeout = 10
修改后重启 MySQL ,如果经常性的报此错误,请做一下服务器的整体优化。

[[i] 本帖最后由 下砂 于 2008-4-13 21:39 编辑 [/i]]

下砂 发表于 2008-4-8 23:07

Access denied for user: 'root@localhost' to database 'test'
error.:1044
问题分析:
MySQL 数据库拒绝访问,一般是因为 MySQL 连接帐号的权限不够导致的。

解决方法:
1.联系你的空间商或者服务器维护人员增加连接数据库帐号的相应权限。
2.如果你知道 MySQL 的 root 帐号信息,可以在 phpmyadmin 等 MySQL 管理工具中执行更改权限的 SQL 语句完成增加权限,如类似:
GRANT ALTER ROUTINE EXECUTE ON * . * TO 'root'@'localhost'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
这样的语句,增加 root 帐号的 ALTER 权限,更多的权限编辑请看相关帮助。

下砂 发表于 2008-4-8 23:08

Access denied for user: '***@localhost' (Using password: YES)
error.:1045
问题分析:
数据库用户名或密码错误,导致程序没有权限连接 MySQL 数据库。

解决方法:
1.请联系空间服务商询问正确的 MySQL 数据库用户名和密码,然后修改论坛根目录下 config.inc.php 中关于数据库的配置信息。如果是安装的过程中出现的这个问题,可以重新填写正确的帐号信息继续安装。
2.请检查一下修改后的 config.inc.php 是否已经保存。

下砂 发表于 2008-4-8 23:09

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.:1135
问题分析:
数据库服务器问题,数据库操作无法创建新线程。一般是两个原因:
1.服务器系统内存溢出。
2.环境软件损坏或系统损坏。

解决方法:
1.虚拟主机用户请联系下空间商数据库服务器的内存和系统是否正常。
2.独立主机用户请联系服务器管理员检查服务器的内存和系统是否正常,如果服务器内存紧张,请检查一下哪些进程消耗了服务器的内存,同时考虑是否增加服务器的内存来提高整个的负载能力。

页: [1] 2

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.