php无法连接到mysql

回复 收藏
x1. 背景介绍     之前的博客是lamp架构, 由于云服务器内存有点低, 现在想改为lnmp架构. 毕竟nginx和apache相比,nginx占用的系统内存会少点。
     lnmp已经搭建好了, 访问网站时提示无法连接到数据库.
     [root@90root nginx]# curl localhost
        Error establishing a database connection

     当我关闭nginx服务开启apache访问正常.
     先写一个phpinfo函数, 查看php配置时所指定的mysql.sock所指定的路径。

      
2.png


     在配置phpl时, --with-mysql-sock指定的位置为/tmp/mysql.sock  到/tmp目录下没找到这个文件,所以php连接时找不到mysql.sock。
     但是在命令行通过mysql命令可登录并正常操作。


x2. 解决办法
     1. 命令行下登录mysql, 执行一下命令。
mysql -uroot -p
mysql> show variables like 'socket';
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| socket        | /usr/local/mysql/mysql.sock |
+---------------+-----------------------------+
1 row in set (0.00 sec)


     2. 编辑php.ini ,找到mysql.default_socket配置项, 默认一般是空值.
将此项修改为: mysql.default_socket= /usr/local/mysql/mysql.sock
vim /usr/local/php-fpm/etc/php.ini
mysql.default_socket = /usr/local/mysql/mysql.sock

     3. 重启php
/etc/init.d/php-fpm restart

     4. 验证

        
3.png











2015-05-14 00:28 举报
已邀请:
0

lyhabc

赞同来自:

重新指定一下路径就可以了
0

田埂上的梦

赞同来自:

更改php.ini指定mysql.sock多方便
0

模范棒棒糖

赞同来自:

我的也是同样的情况,已经按照你的方法更改了。
0

田埂上的梦

赞同来自:

模范棒棒糖 发表于 2015-5-14 21:50
我的也是同样的情况,已经按照你的方法更改了。

{:4_91:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: