无法在新 Laravel 项目中迁移
cannot migrate in new Laravel project
所以,我正在尝试从头开始创建一个 laravel 项目。
我运行以下:
composer global require "laravel/installer=~1.1" //this code was not necessary
composer create-project laravel/laravel my-project-name
php artisan serve
现在我准备好新的 laravel 项目,并尝试 运行:
php artisan migrate
但返回错误:
SQLSTATE[HY000] [2002] Connection refused
我查看了类似问题的其他答案,但没有一个解决了问题。
我也尝试创建一个新的 mysql 用户,但它返回了另一个错误:
SQLSTATE[HY000] [1698] Access denied
如有任何帮助,我们将不胜感激!
我当前的环境:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=password
我可以在 运行 php artisan serve
之后转到 127.0.0.1:8000
但我无法访问 127.0.0.1:3306
我认为 phpmyadmin 在哪里?
我还没有改变任何东西,但如果有任何其他代码我应该分享请让我知道!
更新
正如@brombeer 所提到的,我无法访问 127.0.0.1:3306
是因为我没有安装 phpmyadmin。
我只是感到困惑,因为我一直在使用 docker 处理很多项目,并自动假设它已经安装在此设备上(我认为 docker 会自动设置 phpmyadmin?)
- 确保 mysql 已安装。
- 确保 mysql 是 运行。
- 确保您在 mysql 中添加了一个
laravel
数据库,与您的 .env 匹配
- 确保您已从 .env 添加了用户。它应该可以使用您的 .env
中的密码从您的 .env 访问数据库
完成前两个步骤的具体步骤会因您的环境和操作系统而异,但通常在 Whosebug 和网络上都有非常详细的介绍。
创建数据库应该是 create database laravel;
在 mysql 作为 root 用户的事情。
添加用户就像创建用户一样简单 'newuser'@'localhost' IDENTIFIED BY 'password';
授予数据库权限,GRANT ALL PRIVILEGES ON laravel.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES
请先检查3306端口是否被占用,并检查您的防火墙是否阻止了该端口。
如果没问题,请使用 php artisan config:clear 清理缓存。
如果这不能解决您的问题,您真的有可能需要按照 brombeer 的建议重新安装 laravel。
希望能帮到你
所以,这是一个权限错误。
我无法使用 root 进行迁移,因为它现在需要 sudo,因此我按照第一个答案选项 2 中的步骤创建了一个新用户 。
我必须改变的一件事是我必须 运行
UPDATE user SET plugin='mysql_native_password' WHERE User='YOUR_SYSTEM_USER';
而不是
UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
另外正如@brombeer 提到的,我没有安装 phpmyadmin。我可以在我正在从事的其他项目上访问 phpmyadmin,因为他们有一个 docker。
所以,我正在尝试从头开始创建一个 laravel 项目。
我运行以下:
composer global require "laravel/installer=~1.1" //this code was not necessary
composer create-project laravel/laravel my-project-name
php artisan serve
现在我准备好新的 laravel 项目,并尝试 运行:
php artisan migrate
但返回错误:
SQLSTATE[HY000] [2002] Connection refused
我查看了类似问题的其他答案,但没有一个解决了问题。
我也尝试创建一个新的 mysql 用户,但它返回了另一个错误:
SQLSTATE[HY000] [1698] Access denied
如有任何帮助,我们将不胜感激!
我当前的环境:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=password
我可以在 运行 php artisan serve
之后转到 127.0.0.1:8000
但我无法访问 127.0.0.1:3306
我认为 phpmyadmin 在哪里?
我还没有改变任何东西,但如果有任何其他代码我应该分享请让我知道!
更新
正如@brombeer 所提到的,我无法访问 127.0.0.1:3306
是因为我没有安装 phpmyadmin。
我只是感到困惑,因为我一直在使用 docker 处理很多项目,并自动假设它已经安装在此设备上(我认为 docker 会自动设置 phpmyadmin?)
- 确保 mysql 已安装。
- 确保 mysql 是 运行。
- 确保您在 mysql 中添加了一个
laravel
数据库,与您的 .env 匹配
- 确保您已从 .env 添加了用户。它应该可以使用您的 .env 中的密码从您的 .env 访问数据库
完成前两个步骤的具体步骤会因您的环境和操作系统而异,但通常在 Whosebug 和网络上都有非常详细的介绍。
创建数据库应该是 create database laravel;
在 mysql 作为 root 用户的事情。
添加用户就像创建用户一样简单 'newuser'@'localhost' IDENTIFIED BY 'password';
授予数据库权限,GRANT ALL PRIVILEGES ON laravel.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES
请先检查3306端口是否被占用,并检查您的防火墙是否阻止了该端口。 如果没问题,请使用 php artisan config:clear 清理缓存。 如果这不能解决您的问题,您真的有可能需要按照 brombeer 的建议重新安装 laravel。 希望能帮到你
所以,这是一个权限错误。
我无法使用 root 进行迁移,因为它现在需要 sudo,因此我按照第一个答案选项 2 中的步骤创建了一个新用户
我必须改变的一件事是我必须 运行
UPDATE user SET plugin='mysql_native_password' WHERE User='YOUR_SYSTEM_USER';
而不是
UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
另外正如@brombeer 提到的,我没有安装 phpmyadmin。我可以在我正在从事的其他项目上访问 phpmyadmin,因为他们有一个 docker。