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
我不知道为什么,但默认情况下它选择了错误的主机。
如果还是不行,可能你已经设置了密码,在这种情况下你需要在命令中添加-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' 设置...这是您需要更改的内容:
- 检查
DB_HOST
是否设置为 127.0.0.1
- 将
DB_DATABASE
设置为您创建的那个。在这种情况下 my_db
- 设置首选
DB_USERNAME
或尝试 root
。
- 将
DB_PASSWORD
设置为您在开始时选择的 MySQL 的密码,当您通过自制软件设置 mysql 时。
④完成
大功告成。尝试再次打开终端,转到您的 Laravel 项目文件夹和 php artisan migrate
.
我没有使用 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
我不知道为什么,但默认情况下它选择了错误的主机。
如果还是不行,可能你已经设置了密码,在这种情况下你需要在命令中添加-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' 设置...这是您需要更改的内容:
- 检查
DB_HOST
是否设置为127.0.0.1
- 将
DB_DATABASE
设置为您创建的那个。在这种情况下my_db
- 设置首选
DB_USERNAME
或尝试root
。 - 将
DB_PASSWORD
设置为您在开始时选择的 MySQL 的密码,当您通过自制软件设置 mysql 时。
④完成
大功告成。尝试再次打开终端,转到您的 Laravel 项目文件夹和 php artisan migrate
.