mysql - 在本地手动设置 MySQL 以运行 Laravel artisan migrate (无 homestead) ERROR 2002 (HY000)

标签 mysql laravel homebrew homestead

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

但是,即使我通过 Homebrew 程序安装了 mysql,我似乎也无法让 Laravel 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

如果尚未安装,则谷歌搜索如何安装“通过 Homebrew 程序安装 mysql”。 如果安装了不要忘记设置你的mysql,按照 Homebrew 程序告诉你的操作:

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我不知道为什么,但它默认选择错误的主机。

如果这仍然不起作用,可能您已经设置了密码,在这种情况下,您需要将 -p 添加到命令中: mysql -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设置为您在开始通过 Homebrew 程序设置mysql时选择的MySQL密码。

④完成

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

关于mysql - 在本地手动设置 MySQL 以运行 Laravel artisan migrate (无 homestead) ERROR 2002 (HY000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071318/

相关文章:

mysql - 根据特定条件从表中删除记录

php - Mysql拆分字符串并只得到整数值

php - 如何使用php将列值作为逗号从mysql数据导入到csv文件

php - Laravel 不根据数据库 ID 导航到 url

php - 尝试读取数组上的属性 "title"(错误异常)Laravel Php

php - 将本地 mySQL 数据库从 Laravel/Homestead 移动到实时站点数据库

macos - 在 OSX 中找不到 Imagemagick 字体

java - 通过Homebrew安装java8后,JAVA_HOME不正确

macos - 重置 Homebrew 配方

mysql - 查询返回(分组)行,其中不存在具有 column=condition 的行