MySQL 本地手动设置 运行 Laravel artisan migrate (without homestead) ERROR 2002 (HY000)

Manual set up of MySQL locally for running Laravel artisan migrate (without homestead) ERROR 2002 (HY000)

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

但是,我似乎无法让 Laravel mysql 迁移工作,即使我已经通过自制程序安装了 mysql...

我得到很多错误,其中:

[PDOException] SQLSTATE[HY000] [2002] Connection Refused

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

经过多次深入研究,我找到了答案。请参阅下面的解决方案!

①‖检查mysql是否安装正确

brew info mysql

如果没有安装,那么 google 如何安装 '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 and/or 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

尽管我没有通过 homestead 安装 Laravel,但它具有所有 'homestead' 设置...这是您需要更改的内容:

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

④完成

大功告成。尝试再次打开终端,转到您的 Laravel 项目文件夹和 php artisan migrate.