MySQL 常见错误分析与解决方法常见错误分析与解决方法
一、一、Can’t connect to MySQL server on ‘localhost'(10061)?
翻译:不能连接到localhost 上的mysql?分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。?
需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。?解决:既然没有启动那就去启动这台
机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。?如果觉得mysql负载异常,可以到
mysql/bin 的目录下执行mysqladmin-uroot -p123 processlist来查看mysql当前的进程。
二、二、Unknown MySQL ServerHost ‘localhosadst’ (11001)
翻译:未知的MySQL服务器localhosadst?分析:服务器localhosasdst 不存在。或者根本无法连接?解决:仔细检查自己论
坛下面的./config.inc.php找到$dbhost重新设置为正确的mysql 服务器地址。
三、三、Access denied for user:’roota@localhost’ (Using password: YES)
?翻译:用户roota 访问 localhost 被拒绝(没有允许通过)?分析:造成这个错误一般数据库用户名和密码相对mysql服务器
不正确?解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。
四、四、Access denied for user:’red@localhost’ to database ‘newbbs’?
翻译:用户 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 PRIVILEGES;
五、五、No Database Selected
?翻译:没有数据库被选择上?分析:产生的原因有两种?config.inc.php 里面$dbname设置的不对。致使数据库根本不存
在,所以在$db->select_db($dbname); 时返回了false?和上面问题四是一样的,数据库用户没有select权限,同样会导致这样
的错误。当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。?解决:对症下药?打
开config.inc.php找到$dbname核实重新配置并保存?同问题四的解决方法
六、六、Can’t open file:’xxx_forums.MYI’. (errno: 145)
翻译:不能打开xxx_forums.MYI?问题分析:?这种情况是不能打开cdb_forums.MYI 造成的,引起这种情况可能的原因
有:?1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。?2、类 unix 操作系统
下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。?解决方法:?1、修复数据表?可以使用下面的两种方
式修复数据表:(第一种方法仅适合独立主机用户)?1)使用 myisamchk ,MySQL自带了专门用户数据表检查和修复的工具
—— myisamchk 。更改当前目录到MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命
令为:myisamchk-r 数据文件目录/数据表名.MYI;?2)通过 phpMyAdmin 修复,phpMyAdmin 带有修复数据表的功能,进入
到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。?注意:以上两种修复方式在执行前一定要备份数据
库。?2、修改文件的属组(仅适合独立主机用户)?1)复制数据库文件的过程中没有将数据库文件设置为MySQL 运行的帐号
可读写(一般适用于 Linux和 FreeBSD 用户)。
七、七、Table’test.xxx_sessions’ doesn’t exist
?翻译:xxxxx表不存在?分析:在执行sql语句时没有找到表,比如:SELECT * FROMxxx_members WHERE uid=’XX’ 这
里如果表xxx_members不存在于$dbname库里,那么就会提示这个错误。具体可分为以下三种情况来讨论:?安装插件或者
hack时修改了程序文件,而忘记了对数据库作相应的升级。?后台使用了不完全备份,导入数据时没有导入到已经安装了相应
版本的论坛的数据库中。?解决: 同样对症下药,不同的原因不同的处理方法。?仔细对照插件作者提供的安装说明,把遗漏
的对数据库的操作补上,如果仍然不能解决问题,那么应该怀疑该插件的可用性了。去咨询一下插件作者,或者将其卸载。?
不要张冠李戴,多大的脚就穿多大的鞋。总之使得程序文件和数据库配套即可.
八、八、Unknown column’column_name’ in ‘field list’
翻译:未知的字段名column_name?分析:在执行sql语句是出现了指定表中没有的字段名称,就会出现这个错误。具体导
致的原因可分为以下两种?安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。?程序文件和数据库不配
套,比如d2.5的数据库配置给d4.1的程序来用肯定会出现这个错误。?解决: 导致的原因和问题八的1和 3是相同的,所以解
决方法也一样。