此次有点难搞,因为第一次使用nginx和php的php-fpm,mysql也是使用第三方修改过mysql(http://www.percona.com/ 这是加强版的mysql,一个dba推荐给我 ),因此以为有点难搞,首先就是去检查数据库用户是否远程登陆,因而登陆mysql,发现的确是不容许远程登陆到mysql,然php
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
后就受权远程登陆依然执行程序时依然是拒绝,而后我就怀疑是否与php-fpm执行用户有关,因而又去看了一遍php-fpm的配置文件,没有看到有配置用户或者权限,真是蛋疼,而后又把关的日志文件都翻了一次,没有任何记录,mysql
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的用户表中查看主机与用户名的对应关系,原来是主机与用户对应关系不一致nginx
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)