一、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: '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;
十七、 Lost connection to MySQL server during query
翻译:MySQL服务器失去连接在查询期间
分析:远程连接数据库是有时会有这个问题。MySQL服务器在执行一条sql语句的时候失去了连接造成的。
解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环境。
十九、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 数据库
二十五、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的最大连接数默认是100, 最大可以达到16384。
1、查看最大连接数:
show variables like '%max_connections%';
2、修改最大连接数
方法一:修改配置文件。推荐方法一
进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可.
方法二:命令行修改。不推荐方法二
命令行登录MySQL后。设置新的MySQL最大连接数为200:
MySQL> set global max_connections=200。
这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。