当前位置:首页 >> 计算机软件及应用 >>

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 Server Host '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 分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻 止了,而这个错误是在对数据库进行操作时引起的。比如在select update等等。这个是因为该用户没有操作数据库相应的权力。比如 select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以 操作。 解决:如果是自己的独立主机那么更新mysql.user 的相应用户记录, 比如这里要更新的用户为red 。或者直接修改 ./config.inc.php 为其配 置一个具有对数据库操作权限的用户 或者通过如下的命令来更新授权grant all 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 * FROM xxx_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是相同的,所以解决方法也一样。 九、You have an error in your SQL syntax 翻译:有一个语法错误在你的sql中 分析:论坛标准的程序是没有sql语法错误的。所以造成这个错误的原 因一般就两类

安装插件或擅自修改程序。 不同的数据库版本数据库导出导入,比如MySQL4.1的数据在导出的语 句包含了MySQL4.0没有的功能,像字符集的设定,这时如果将这些sql 导入到MySQL4.0的时候就会产生sql语法错误。 解决: 仔细检查看到底是哪里的错误,将其修正,实在不行就用标准程序把出 错的程序替换。 在数据库备份的时候要留意,如果不打算倒入到其他版本的mysql中则 不用特殊考虑,反之要特殊的设定。使用DZ4.1的后台数据备份,可以 按照提示去设定想要的格式。独立主机的也可以在到处的时候将其导出 为mysql4.0的格式。 mysqldump -uroot -p --default-character-set=latin1 --setcharset=gbk --skip-opt databse > test.sql 十、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 "表名“,可以暂时解决问题。 十一、 Duplicate key name 'xxx' 翻译:索引名重复 分析:要创建的索引已经存在了,就会引发这个错误,这个错误多发生 在升级的时候。可能是已经升级过的,重复升级引起的错误。也有可能 是之前用户擅自加的索引,刚好与升级文件中的所以相同了。 解决: 看看已经存在的索引和要添加的索引是否一样,一样的话可以 跳过这条sql语句,如果不一样那么现删除已存在的所以,之后再执 行。 十二、 Duplicate column name 'xxx' 翻译:字段名xxx重复 分析:添加的字段xxx已经存在,多发生在升级过程中,与问题十二的 产生是一样的。 解决: 看一下已经存在的字段是否和将要添加的字段属性完全相同, 如果相同则可以跳过不执行这句sql,如果不一样则删除掉这个字段。 之后继续执行升级程序。 十三、 Table 'xxx' already exists 翻译:数据表xxx已经存在 分析:xxx表已经存在于库中,再次试图创建这个名字的表就会引发这 个错误。同样多发生在论坛的升级中。类似于问题十二。 解决: 看看已经存在的表是否和将要创建的表完全一样,一样的话可 以跳过不执行这个sql,否则请将存在的表先删除,之后继续执行升级 文件。

十四、 Can't create database 'xxx'. Database exists 翻译:不能创建数据库xxx,数据库已经存在 分析:一个mysql下面的数据库名称必须保证唯一性,否则就会有这个 错误。 解决:把已经存在的数据库改名或者把将要创建的数据库改名,总之不 让他们的名称冲突。 十五、 小结(针对问题 11\12\13\14\15) 此类问题错误提示中都暗藏一个关键词duplicate(重复) 那么对于mysql数据库来说什么东西是不能重复的呢? 数据库 database 同一个数据库下数据表 table 同一个数据表下字段 column 同一个数据表下索引 key 同一个数据表在索引唯一(UNIQUE PRIMARY)的情况下记录中的这 些字段不可以重复 十六、Unknown system variable 'NAMES' 翻译:未知的系统变量NAMES 分析:Mysql版本不支持字符集设定,此时强行设定字符集就会出现这 个错误。 解决: 将sql语句中的SET NAMES ‘xxx’ 语句去掉 十七、 Lost connection to MySQL server during query 翻译:MySQL服务器失去连接在查询期间 分析:远程连接数据库是有时会有这个问题。MySQL服务器在执行一 条sql语句的时候失去了连接造成的。 解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环 境。 十八、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; 记得后面要有分号’;’ 虚拟主机的用户如果总是出现这个问题可找空间商协商解决。 十九、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 ,如果经常性的报此错误,请做一下服务器的整体 优化。 二十、There is no such grant defined for user '%s' on host '%s' 错误编号:1141 问题分析: MySQL 当前用户无权访问数据库。 解决方法: 1、虚拟主机用户请联系空间商,确认给你提供的帐号是否有授权数据 库的权限。 2、独立主机用户请联系服务器管理员,确认给您提供的数据库帐号是 否有管理此数据库的权限。 二十一、Error on rename of '%s' to '%s' (errno: %d)

error.:1025 问题分析: 请检查一下您的程序是否有修改数据库表名的语句。 解决方法: 1.请检查您的程序中哪些地方需要修改数据库表名; 2.如果您的实际应用确实需要修改到数据库表名的话,请联系空间商或 者服务器管理员给您开放修改库名的权限和服务器本身是否正常。 二十二、Error reading file '%s' (errno: %d) error.:1023 问题分析: 数据库文件不能被读取。 解决方法: 1.虚拟主机用户请联系空间商查看数据库是否完好。 2.独立主机用户请联系服务器管理员检查一下 MySQL 本身是否正常, MySQL 是否可以读取文件,Linux 用户可以检查一下 MySQL 的数据 库文件的属主是否正确以及本身的文件是否损坏。 二十三、Host '*****' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' error.:1129 问题分析: 数据库出现异常,请重启数据库。 解决方法: 1. 由于存在很多连接错误,主机'****'被屏蔽,虚拟主机用户请联系空 间商处理,独立主机用户请联系服务器管理员,在 MySQL 的命令控制 台下执行'mysqladmin flush-hosts'解除屏蔽即可,或者重启 MySQL 数据库 二十四、dropping database (can't delete '%s', errno: %d) error.:1009 问题分析: 不能删除数据库文件,导致删除数据库失败。 解决方法: 1.检查您使用的数据库管理帐号是否有权限删除数据。 2.检查数据库是否存在。

二十五、Got error 28 from table handler error.:1030 问题分析: 数据库所在磁盘空间已满。 解决方法: 1.虚拟主机用户请联系空间商增加 MySQL 所在的磁盘空间或者清理一 些无用文件; 2.独立主机用户请联系服务器管理员增加 MySQL 所在的磁盘空间或者 清理一些无用文件 二十六、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.独立主机用户请联系服务器管理员检查服务器的内存和系统是否正 常,如果服务器内存紧张,请检查一下哪些进程消耗了服务器的内存, 同时考虑是否增加服务器的内存来提高整个的负载能力。 二十七、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 是通过 PASSWORD 这种方式加密的。可以通过以下两种方法得到解决:

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'; 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 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'; 二十八、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'; 二十九、Can't connect to MySQL server on 'localhost' error.:2003 问题分析: MySQL 服务没有启动,一般是在异常的情况下 MySQL 无法启动导致 的,比如无可用的磁盘空间,my.ini 里 MySQL 的 basedir 路径设置 错误等。 解决方法: 1.检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可 用。 2.检查 my.ini 里的 basedir 等参数设置是否正确,然后重新启动下 MySQL 服务。 三十、Lost connection to MySQL server during query error.:2013 问题分析: 数据库查询过程中丢失了与 MySQL 服务器的连接。 解决方法: 1.请确认您的程序中是否有效率很低的程序,比如某些插件,可以卸载 掉插件,检查一下服务器是否正常; 2.服务器本身资源紧张,虚拟主机用户请联系空间商确认,独立主机用 户请联系服务器管理员,检查一下服务器是否正常。 三十一、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、虚拟主机用户请联系空间商调整此参数。


相关文章:
mysql常见问题解决方法.pdf
mysql常见问题解决方法 - 一、Can't connect to M
MySQL常见错误分析与解决方法【总结 】.doc
MySQL常见错误分析与解决方法【总结 】_计算机软件及应用_IT/计算机_专业资料。mysql 错误分析 【总结 】MySQL 常见错误分析与解决方法 1、Can’t connect to ...
MYSQL数据库实时同步配置与常见问题解决方法.pdf
MYSQL数据库实时同步配置与常见问题解决方法 - Mysql 同步配置 前言:测试成功为 redhat AS5 64 位系统平台,Mysql sever 为 mysql-5.1.42-linu...
常见的MySQL解决方案.doc
常见MySQL解决方案 - 结总年半待店酒便不多来带事同己自给 !免心任责和风
MYSQL常见错误代码及处理.doc
错误原因:误移动 mysql 表或其他文件 错误处理: 1)检查表文件(.frm、.ibd、.MYD、.MYI)权限 2)设定表文件所有者及执行权限为:mysql 660 3)重启服务 错误...
mysql数据库实时同步配置与常见问题解决方法.doc
mysql数据库实时同步配置与常见问题解决方法_计算机软件及应用_IT/计算机_专业资料。mysql数据库双机或多机实时同步配置,与常见问题解决方法,我亲自测试成功并使用,...
用MySQL解决一些常见问题.doc
MySQL解决一些常见问题 - 19.1 数据库复制 一方面复制可以用来增加健
常见的数据库错误的解决方法!.txt
常见的数据库错误解决方法! - 这里所说的是MySQL Query Error提示错误解决方法,部分是完全可以自己动手解决的,没有多大必要一遍遍问。除非是常规方法不能解决的~
MySQL常见错误解决.txt
MySQL常见错误解决 - MySQL常见错误代码解决方法。... MySQL常见错误解决_IT/计算机_专业资料。MySQL常见错误代码解决方法。 修改config.php以适合你的数据库 MYSQL常见...
Mysql出错解决方法.doc
Mysql出错解决方法 - Win7 下安装 MySql 方法 1、去官方下载 MYSQL 5.0。 2、修改防火墙 的设置,在允许例外里添加新的端口,名字为 mysql,开放的端口为 TCP ...
MYSQL常见错误列表和解决.doc
MYSQL常见错误列表和解决_IT/计算机_专业资料。详细的MYSQL常见错误列表和解决方法 MYSQL 出错代码列表在用 mysql 创建表时,有 A、B 两个表需要同时创建 C 表的...
Mysql字符集设置原理以及常见问题解决.doc
Mysql字符集设置原理以及常见问题解决_计算机软件及应用_IT/计算机_专业资料。...将请求数据从 character_set_connection 转换为内部操作字符集, 其确定方法如下:...
MySQL数据库常见错误提示的对照表.doc
***解决方法*** 1064:MySQL 不支持错误提示中的编码。***解决方法*** 1065:无效的 SQL 语句,SQL 语句为空。 1067:MySQL 版本为 5,不支持空的默认值。 ...
mysql问题处理.doc
MySQL 数据库中的用户, 默认是不允许远程连接的, 如果要某个用户能够够远程连接到 MySQL 数据库, 需要手动增加远程访问权限。 ? 更改方法一: 使用 Root 用户...
自己总结的Mysql安装及错误处理.txt
自己在项目开发过程中,Mysql数据库安装教程,以及常见错误处理等。...mysql> 其他的一些设置方法: 修改数据库的字符集 mysql>use mydb mysql>alter ...
在搭建MySQL+WorkBench时遇到的问题及解决办法.doc
在搭建MySQL+WorkBench时遇到的问题解决办法 - 在搭建 MySQL+Workbench 时遇到的问题解决办法 环境概述: Win7 32 位 + MySQL5.6 + Wor...
五大常见的MySQL高可用方案.doc
分布式协议 分布式协议可以很好解决数据一致性问题。比较常见方案如下: 2.5.1. MySQL cluster MySQL cluster 是官方集群的部署方案,通过使用 NDB 存储引擎实时备份...
MySQL.unkown
Contact MySQL Sales USA/Canada: +1-866-2
mysql常见错误提示及解决方法.doc
mysql常见错误提示及解决方法 - 130 :文件格式不正确。 (还不是很清楚
用MySQL解决一些常见问题.doc
MySQL解决一些常见问题 - 专业文献,计算机,MySQL数据库... 用MySQL解决一些常见问题_IT/计算机_专业资料。专业...MySQL 复制一个数据库最一般的方法是使用更新日志。...
更多相关标签: