我目前已在Digital Ocean中使用LAMP堆栈为我的应用程序设置了临时区域。我的应用程序的框架是Laravel 5.5和Vue 2x。
在开发中,我一直在使用远程MySQL,并且连接错误没有问题。但是,当我将其移至暂存环境时,它给了我拒绝访问错误。当我仔细查看错误日志时,拒绝访问是针对username @ [digital-ocean-droplet-ip],而我已将MySQL凭据正确配置为laravel的config /数据库文件下的远程主机IP。
所以,我是否必须在Apache下进行任何配置以允许任何外部MySQL连接?我忘记了cmd,但是我确实允许sfw防火墙允许对Apache中远程服务器IP地址的任何端口3306进行访问。
感谢您的帮助。
谢谢!
答案 0 :(得分:0)
默认情况下,MySQL不会创建具有远程连接访问权限的用户。
首先,您需要在数据库上创建一个允许来自外部(%)或特定IP的连接的用户
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
比给他特权
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
* s可以分别替换为您的数据库名和表名
您还可能会检查您的mysql配置(在我的情况下为/etc/mysql/mysql.conf.d/mysqld.cnf)是否未注释此行
bind-address = 127.0.0.1
如有必要,更改IP地址
重新启动mysql和apache
sudo service apache2 restart
sudo service mysql restart
请在您的.env文件中更新用户名和密码,然后重试!