美文网首页
Mac 提示 SQLSTATE[HY000][2000] No

Mac 提示 SQLSTATE[HY000][2000] No

作者: Yii2小虾 | 来源:发表于2016-12-01 23:02 被阅读0次

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

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

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

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

    检查 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

          本文链接:https://www.haomeiwen.com/subject/ckkzpttx.html