在本地手动设置 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
我不知道为什么,但它默认选择了错误的主机。
如果这仍然不起作用,可能您已经设置了密码,在这种情况下,您需要在命令中添加-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
尽管我没有通过宅基地安装 Laravel,但它具有所有“宅基地”设置...以下是您需要更改的内容:
-
检查
DB_HOST
是否设置为127.0.0.1
将DB_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 一起使用?