所以我想将现有的laravel项目部署到我的digitalocean vps中 我是用户this,我成功上传了我的网站
我的env文件也是
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
并得到这些错误
有什么问题
[照亮\数据库\ QueryException] SQLSTATE [HY000] [2002]连接被拒绝(SQL:select * from information_s chema.tables其中table_schema = form和table_name = migrations)
和
[PDOException] SQLSTATE [HY000] [2002]拒绝连接
答案 0 :(得分:27)
在.env
文件中,将DB_HOST
从127.0.0.1
更改为localhost
答案 1 :(得分:2)
在您的.env文件中,将DB_HOST从127.0.0.1更改为localhost
然后
php artisan view:clear
这对我有用。
答案 2 :(得分:1)
您可能会遇到此错误。
检查此用户是否可以从远程位置访问数据库。默认情况下,root用户可以在本地访问服务器(localhost,127.0.0.1和:: 1)。
因此,请检查用户是否可以从远程IP或任何地方进行访问。
当您使用digitalocean时,我建议检查他们是否具有连接到mysql数据库的特定配置。
答案 3 :(得分:1)
SELinux可能是原因。
设置此规则,然后重试:
sudo setsebool -P httpd_can_network_connect_db=1
答案 4 :(得分:1)
试图为尚未在上述任何答案中获得成功的你们提供解决方案,我将分享我的解决方案。
来自Windows 10,我了解root用户的密码始终为空,因此我的.env文件如下所示:
DB_USERNAME=root
DB_PASSWORD=
在Mac上,密码也默认为“ root”。将我的.env文件更改为如下所示可解决我的问题:
DB_USERNAME=root
DB_PASSWORD=root
答案 5 :(得分:0)
输入字符串:
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
在DB_PASSWORD =
之后它适用于MAMP。将路径设置为mysql.sock
答案 6 :(得分:0)
我的作曲家已在全球安装,我运行php artisan serve时没有启动xampp并得到此错误。运行我的xampp服务器后,从我的角度来看它工作正常。
答案 7 :(得分:0)
长时间工作对我有用:
在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
答案 8 :(得分:0)
在您的.env文件中
class test{
constructor(){
console.log('stuff');
}
foo(){console.log('stuff 2');}
}
var obj = new test(); //will print 'stuff' in console
obj.foo(); //will pring 'stuff2' in console
function test(){
console.log('stuff');
function foo(){console.log('stuff 2');}
return {foo:foo}
}
var obj = new test(); //will print 'stuff' in console
obj.foo(); //will pring 'stuff2' in console
var obj2 = test(); //will print 'stuff' in console
obj2.foo(); //will pring 'stuff2' in console
答案 9 :(得分:0)
在按照上述说明进行更改之前,
command prompt
,则运行mysql.server
状态或mysqld
状态将显示数据库状态。dbuser
从'%'
或'localhost'
或'127.0.0.1'
连接。否则,只需授予用户'%'