Access denied for user: 'root@localhost' to database 'test'
错误编号: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 权限,更多的权限编辑请看相关帮助。
Client does not support authentication protocol requested by server
错误编号: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');
MySQL->FLUSH PRIVILEGES;
2)MySQL->UPDATE MySQL.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user';
MySQL->FLUSH PRIVILEGES;
2、 Linux/Unix 平台
Linux 平台下首先确定是否安装过 MySQL 的客户端,这个用 rpm 安装很简单,Linux 代码为:
rpm -ivh MySQL-client-4.1.15-0.i386.rpm
然后在编译 php 的时候要加上:
--with-MySQL=/your/path/to/MySQL
一般情况下都可以解决。如果还出现这种错误,可以按照下面的方法来做:
1)MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
MySQL->FLUSH PRIVILEGES;
2)MySQL->UPDATE MySQL.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user';
MySQL->FLUSH PRIVILEGES;
错误编号:23 问题分析:
打开文件时 MySQL 资源溢出。 解决方法:
1、虚拟主机用户请联系空间商确认服务器是否正常;
2、独立主机用户请联系服务器管理员适当调整 MySQL 配置文件中 table_cache 参数,重启 MySQL 后还报此错误,请深入优化 MySQL,并适当提高服务器的配置。