我已经用服务器数据库数据(不是本地主机)更新了.env文件,但是我无法通过命令提示符连接到它。
DB_HOST=vps.sitename.com
DB_DATABASE=name_of_my_database
DB_USERNAME=myusername
DB_PASSWORD=mypassword当我试图从命令行访问数据库时,如下所示:
mysql -umyusername -pmypassword我得到了以下答复:
Access denied for user 'mysuername'@'localhost' (using password: YES)你知道解决那个问题的办法吗?
发布于 2015-11-21 13:42:50
mysql命令不使用.env文件,只有Laravel使用。如果不将主机名传递给命令,它将尝试连接到localhost,正如您从错误消息中看到的那样。您可以通过-h或--host选项将其传递给命令,如下所示:
mysql -h vps.sitename.com -umyusername -pmypassword还需要确保vps.sitename.com上的vps.sitename.com服务器允许远程连接,并且允许用户myusername从IP地址连接。
发布于 2015-11-21 13:48:04
在服务器中添加.env文件中的凭据并不意味着如果本地主机没有在MySQL中添加/授予访问权限,则可以访问DB,因为mysql命令一开始甚至不使用.env文件。
您需要授权访问MySQL中的“mysuername”@‘localhost’,如下所示:
GRANT ALL ON *.* TO 'myusername'@'localhost';那就别忘了刷新特权,比如:
FLUSH PRIVILEGES这假设您创建了'myusername'@'localhost';
否则,您需要执行以下操作:
CREATE USER 'myusername'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON *.* TO 'myusername'@'localhost';
FLUSH PRIVILEGES然后,请不要忘记绑定my.cnf中的地址,以便在适用的情况下远程访问,例如:
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx这样就行了。
希望一切都适合你。
https://stackoverflow.com/questions/33843960
复制相似问题