拒绝访问用户“username”@“ip”错误-digtal ocean

ep6jt1vc  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(449)

我目前已经为我的应用程序在数字海洋中设置了一个临时区域,其中有lamp stack。我的应用程序的框架是laravel5.5和vue2x。
在开发过程中,我一直在使用远程mysql,没有连接错误的问题。但是,当我把它移到staging env时,它给了我拒绝访问的错误。当我仔细查看错误日志时,username@[digital ocean droplet ip]的访问被拒绝,而我已经在laravel的config/database文件下正确配置了远程主机ip的mysql凭据。
所以,我怀疑我是否必须在apache下进行任何配置以允许任何外部mysql连接?我忘了cmd,但我允许sfw firewall允许任何端口3306到apache中的远程服务器ip地址。
感谢您的帮助。
谢谢!

0tdrvxhp

0tdrvxhp1#

默认情况下,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文件中更新用户和密码并重试!

相关问题