首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从命令提示符连接到mysql服务器[Laravel]

无法从命令提示符连接到mysql服务器[Laravel]
EN

Stack Overflow用户
提问于 2015-11-21 13:34:11
回答 2查看 1K关注 0票数 2

我已经用服务器数据库数据(不是本地主机)更新了.env文件,但是我无法通过命令提示符连接到它。

代码语言:javascript
复制
DB_HOST=vps.sitename.com
DB_DATABASE=name_of_my_database
DB_USERNAME=myusername
DB_PASSWORD=mypassword

当我试图从命令行访问数据库时,如下所示:

代码语言:javascript
复制
mysql -umyusername -pmypassword

我得到了以下答复:

代码语言:javascript
复制
Access denied for user 'mysuername'@'localhost' (using password: YES)

你知道解决那个问题的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-21 13:42:50

mysql命令不使用.env文件,只有Laravel使用。如果不将主机名传递给命令,它将尝试连接到localhost,正如您从错误消息中看到的那样。您可以通过-h--host选项将其传递给命令,如下所示:

代码语言:javascript
复制
mysql -h vps.sitename.com -umyusername -pmypassword

还需要确保vps.sitename.com上的vps.sitename.com服务器允许远程连接,并且允许用户myusername从IP地址连接。

票数 1
EN

Stack Overflow用户

发布于 2015-11-21 13:48:04

在服务器中添加.env文件中的凭据并不意味着如果本地主机没有在MySQL中添加/授予访问权限,则可以访问DB,因为mysql命令一开始甚至不使用.env文件。

您需要授权访问MySQL中的“mysuername”@‘localhost’,如下所示:

代码语言:javascript
复制
GRANT ALL ON *.* TO 'myusername'@'localhost';

那就别忘了刷新特权,比如:

代码语言:javascript
复制
FLUSH PRIVILEGES

这假设您创建了'myusername'@'localhost';

否则,您需要执行以下操作:

代码语言:javascript
复制
CREATE USER 'myusername'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON *.* TO 'myusername'@'localhost';
FLUSH PRIVILEGES

然后,请不要忘记绑定my.cnf中的地址,以便在适用的情况下远程访问,例如:

代码语言:javascript
复制
#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

这样就行了。

希望一切都适合你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33843960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档