简介
在装lumen时突然出现了这个错误,主要是因为多个版本php共存,新装的php7配置php.ini时,没有把*.default_socket
设置上而造成无法连接数据库的问题.
解决
首先说明这个是在使用nginx时,必须使用php-fpm时出现的.
现在找到
socket
的位置. 使用命令ps aux | grep -i mysql
看到如下结果mysql 12388 0.0 0.2 390744 44636 pts/0 Sl 14:02 0:01 /opt/mysql/product/bin/mysqld –basedir=/opt/mysql/product –datadir=/opt/mysql/product/data –plugin-dir=/opt/mysql/product/lib/plugin –user=mysql –log-error=/opt/mysql/product/data/oracle1.err –pid-file=/opt/mysql/product/data/oracle1.pid –socket=/var/lib/mysql/mysqld.sock –port=3306
这就是位置
然后打开
php.ini
添加/var/lib/mysql/mysqld.sock
默认为空1
2
3// mysql.default_socket = // php7里已经没有了这个
pdo_mysql.default_socket=/var/lib/mysql/mysqld.sock // 默认是空的,这个就是新添加的地址
mysqli.default_socket =/var/lib/mysql/mysqld.sock然后重启
php-fpm
就解决了.
扩展阅读
- php7 以后就不实用
mysql
这个驱动了 而使用mysqlnd
所以你在phpinfo()
里不会再看到mysql项 - 重启
php-fpm
需要用ps aux|grep php
命令查看php-fpm
的 pid,然后kill pid
.这里注意啊 要是多个php-fpm
一定要看配置文件位置,不要删错了.