Php Laravel SQLSTATE[HY000][2002]连接被拒绝
因此,我想将现有的laravel项目部署到我的digitalocean vps中 我成功地上传了我的网站 我的环境文件也是Php Laravel SQLSTATE[HY000][2002]连接被拒绝,php,laravel,Php,Laravel,因此,我想将现有的laravel项目部署到我的digitalocean vps中 我成功地上传了我的网站 我的环境文件也是 APP_ENV=local APP_KEY=my app key APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=my ip DB_PORT=3306 DB_DATABASE=form DB_USERNAME=root DB_PASSWORD=m
APP_ENV=local
APP_KEY=my app key
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=my ip
DB_PORT=3306
DB_DATABASE=form
DB_USERNAME=root
DB_PASSWORD=my pass
但问题是
我使用mysql创建并运行了php artisan migrate
并且得到了这些错误
有什么问题
[照亮\数据库\查询异常]
SQLSTATE[HY000][2002]连接被拒绝(SQL:从信息中选择*
chema.tables,其中table_schema=form,table_name=migrations)
及
[例外情况]
SQLSTATE[HY000][2002]连接被拒绝
在
.env
文件中,将DB_HOST
从127.0.0.1
更改为localhost
出现此错误的原因有几种
- 数据库服务器未启动,请检查您是否仍然可以使用phpmyadmin。如果您仍然可以使用它,那么您的数据库服务器没有问题
- 配置错误;检查.env文件和config/database.php中的用户名、密码和服务器设置
- 没有对具有给定凭据的服务器和/或数据库的权限 看看你已经采取的步骤,我想这是最后一步了
当您使用digitalocean时,我建议您检查他们是否有连接到mysql数据库的特定配置。SELinux可能是原因 设置此规则并重试:
sudo setsebool -P httpd_can_network_connect_db=1
放置字符串:
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
在DB_密码之后=
它适用于MAMP。将路径设置为mysql.sock我的composer是全局安装的,我运行php artisan Service时没有启动xampp&出现此错误。运行完我的xampp服务器后,我的服务器工作正常。为了给那些在前面提到的答案中没有找到成功答案的人提供解决方案,我将分享我的解决方案 来自Windows 10,我知道root用户的密码始终为空,因此我的.env文件如下所示:
DB_USERNAME=root
DB_PASSWORD=
在Mac上,密码也默认为“root”。将my.env文件更改为如下所示,修复了我的问题:
DB_USERNAME=root
DB_PASSWORD=root
在.env文件中,将DB_HOST从127.0.0.1更改为localhost 然后
经过长时间的工作,这对我来说很有效: 更改php My Admin中的端口以前为8889
APP_NAME=laravel
APP_ENV=local
APP_KEY= YOUR KEY
APP_DEBUG=true
APP_URL=127.0.0.1
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
然后
php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear
在.env文件中
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ur_db_name
DB_USERNAME=ur_db_username
DB_PASSWORD=ur_dbuser_password
在按照上述说明进行更改之前
命令提示符
,则运行mysql.server
状态或mysqld
状态将显示数据库状态dbuser
是否允许从'%'
或'localhost'
或'127.0.0.1'
进行连接。如果没有,只需从'%'授予用户访问权限
您是否在
.env
文件中定义了您的数据库凭据?请看这里@Froxz,它已经没有帮助了,他的问题是homestead@SaumyaRastogi是的,我附上了it@MohammadReza检查您的数据库/用户名/密码检查mysql是否正在运行连接被拒绝
无法连接的错误,可能您的用户没有足够的访问权限等等。它不在我附加的.env旁边的本地主机中file@Arsalan,是否使用远程服务器存储数据库?然后尝试域名而不是IP。这解决了我的问题。但是我无法理解:127.0.0.1
和localhost
之间有什么区别吗?@GhulamAkbar没有区别,除非数据库只接受来自localhost
的连接。例如,为了接受来自两者的连接,您必须创建2个用户,admin@localhost
和admin@127.0.0.1
我看到有人提到相反的情况,这对我不起作用。迁移可以工作,但在尝试获取数据时不起作用。