在本地手动设置 MySQL 以运行 Laravel artisan migrate(无宅基地)错误 2002(HY000)

Posted

技术标签:

【中文标题】在本地手动设置 MySQL 以运行 Laravel artisan migrate(无宅基地)错误 2002(HY000)【英文标题】:Manual set up of MySQL locally for running Laravel artisan migrate (without homestead) ERROR 2002 (HY000) 【发布时间】:2016-10-30 11:48:50 【问题描述】:

我没有使用 Laravel 的 Homestead,而只是手动方法。

但是,即使我通过自制软件安装了 mysql,我似乎也无法让 Laravel mysql 迁移工作......

我收到很多错误,其中:

[PDO异常] SQLSTATE[HY000] [2002] 连接被拒绝

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

经过多次深入研究,我找到了答案。解决方法见下文!

【问题讨论】:

你能告诉我发生了什么错误吗?! 没关系,我已经有了解决办法!谢谢!! 【参考方案1】:

① 检查mysql是否正确安装和设置。

brew info mysql

如果没有安装,那么谷歌如何安装'mysql through homebrew'。 如果已安装不要忘记按照自制软件告诉您的操作来设置您的 mysql

We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation

To connect run:
    mysql -uroot

To have launchd start mysql now and restart at login:
  brew services start mysql
Or, if you don't want/need a background service you can just run:
  mysql.server start

在您的终端中执行上述所有操作。如果遇到错误,请先检查您的 mysql 服务器是否正在运行:

mysql.server start

然后尝试mysql_secure_installation 和/或mysql -uroot 尝试进入。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

如果出现此错误,请尝试:mysql -uroot -h 127.0.0.1 我不知道为什么,但它默认选择了错误的主机。

如果这仍然不起作用,可能您已经设置了密码,在这种情况下,您需要在命令中添加-pmysql -uroot -h 127.0.0.1 -p

如果连这都失败了,可能是权限问题。试试:

sudo chown -R _mysql:mysql /usr/local/var/mysql
sudo mysql.server start

如果你正确进入:那太好了!让我们创建我们的第一个数据库。

② 创建您将使用的数据库。

所以如果你没有使用 Laravel Homestead,你必须先创建你的数据库。一旦你通过上面的命令进入你的 mysql,它应该现在在终端中显示:mysql>

然后只写:CREATE DATABASE my_db;,你可以写任何名字而不是my_db。就是这样!

③ 设置你的 Laravel 设置。

在你的 Laravel 项目文件夹中会有一个 .env 文件。打开它并查看内部,然后搜索以下部分:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

尽管我没有通过宅基地安装 Laravel,但它具有所有“宅基地”设置...以下是您需要更改的内容:

    检查DB_HOST 是否设置为127.0.0.1DB_DATABASE 设置为您创建的那个。在这种情况下my_db 设置首选DB_USERNAME 或尝试root。 将DB_PASSWORD 设置为您在开始时选择的 MySQL 密码,当您通过自制软件设置 mysql 时。

④ 完成

你已经完成了。尝试再次打开终端,转到您的 Laravel 项目文件夹和php artisan migrate

【讨论】:

以上是关于在本地手动设置 MySQL 以运行 Laravel artisan migrate(无宅基地)错误 2002(HY000)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel artisan 设置 env 以拥有两个不同的数据库连接(本地/远程)?

如何设置 MySql 工作台以与 laravel 一起使用?

mysql 8 远程访问

Laravel Docker 容器未连接到本地 mysql

laravel one to on hasOne 关系手动外键和本地键检测错列

laravel 项目本地版本为5.5,线上mysql 为5.7.21版本,执行严格模式