Mac 提示 SQLSTATE[HY000][2000] No such file or directory

Mysql下有时候会出现mysql.sock位置错误,导致无法链接数据库。

这里介绍的无法连接数据库问题也是这个导致。

发生后的环境:yii2 执行  php artisan migrate 

提示 SQLSTATE[HY000][2000] No such file or directory (如下图)


Mac 提示 SQLSTATE[HY000][2000] No such file or directory_第1张图片

检查 mysql.sock 文件路径位置是否设置正确,执行下面命令:

ps aux |grep-i mysql

输出:

_mysql24020.01.22855160 103848??Ss9:17下午0:01.42 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid

仔细看输出,并没有mysql.sock文件的位置,先不用管,用另一个方法。

首先修改my.cnf

位置在/etc/my.cnf下,假如没有的话,去/usr/locate/mysql版本/my.cnf下修改,然后复制到/etc下。

编辑复制过来的my.cny

修改为如下:(没有[client]的话,自己添加~)

[client]

socket = /tmp/mysql.sock

[mysqld]

socket = /tmp/mysql.sock

然后修改php.ini(位置为/etc/php.ini)没有的话,copy一个php.ini.default

执行命令复制一个php.ini:sudo cp /private/etc/php.ini.default  /private/etc/php.ini

修改里面的这三处:

pdo_mysql.default_socket=/tmp/mysql.sock

mysql.default_socket = /tmp/mysql.sock

mysqli.default_socket = /tmp/mysql.sock


保存退出,然后再执行:php artisan migrate

成功了,如图:


Mac 提示 SQLSTATE[HY000][2000] No such file or directory_第2张图片

你可能感兴趣的:(Mac 提示 SQLSTATE[HY000][2000] No such file or directory)