这次有点难搞,由于第一次使用nginx和php的php-fpm,mysql也是使用第三方修改过mysql(http://www.percona.com/ 这是增强版的mysql,一个dba推荐给我 ),所以觉得有点难搞,首先就是去检查数据库用户是否远程登录,于是登录mysql,发现的确是不允许远程登录到mysql,然

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

后就授权远程登录依然执行程序时依然是拒绝,然后我就怀疑是否与php-fpm执行用户有关,于是又去看了一遍php-fpm的配置文件,没有看到有配置用户或者权限,真是蛋疼,然后又把关的日志文件都翻了一次,没有任何记录,

more /var/log/message  #系统级别的
more /var/log/mysql    #mysql的这里倒是有一条说这台机器不能解释名称或者服务未知的,难以理解
#2014-04-08 22:46:45 5044 [Warning] IP address '183.29.144.92' could not be resolved: Name or service not known  接着去查看
/etc/hosts  #localhost 解释没有问题
more /usr/local/php/var/log #php的没有错误的报告

后来干脆就直接写个简单mysql函数测试能不能连接数据库,结果是连接上了,可是不能明白,我之前的程序不可以,于是打开程序mysql配置文件,发现是使用localhost作为主机地址的,所以连接不了数据库,于是又返回到mysql的用户表中查看主机与用户名的对应关系,原来是主机与用户对应关系不一致


mysql> select User,Host  from user;
+-------+-----------+
| User  | Host      |
+-------+-----------+
| root  | %         |
| zhuan | %         |
| root  | 127.0.0.1 |
| root  | ::1       |
|       | cloud     |
| root  | cloud     |
|       | localhost |
| root  | localhost |
+-------+-----------+
8 rows in set (0.00 sec)