我用我的服务器数据库数据(不是localhost)更新了.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)
你知道解决这个问题的方法吗?
答案 0 :(得分:1)
$(function() {
$(".ideatorInfo").hide();
$('.ideator').on('click',function(){
if (!this.$modal) {
this.$modal = $(this).siblings(".ideatorInfo").dialog({
autoOpen: false
});
}
this.$modal.dialog('open');
});
});
命令不使用mysql
文件,只有Laravel文件。如果您没有将主机名传递给该命令,它将尝试连接到.env
,如您从错误消息中看到的那样。您可以通过localhost
或-h
选项将其传递给命令,如下所示:
--host
您还需要确保mysql -h vps.sitename.com -umyusername -pmypassword
上的MySQL服务器允许远程连接,并允许用户vps.sitename.com
从您的IP地址进行连接。
答案 1 :(得分:0)
在服务器中添加.env文件中的凭据并不意味着如果在MySQL中没有添加/授予localhost,则不能访问数据库,因为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
这应该这样做。
希望一切顺利。