拒绝访问用户'username'@'IP'错误-数字海洋

时间:2018-10-24 14:29:14

标签: mysql laravel vue.js digital-ocean lamp

我目前已在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进行访问。

感谢您的帮助。

谢谢!

1 个答案:

答案 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文件中更新用户名和密码,然后重试!