gpt4 book ai didi

mysql - 远程连接 Mysql Ubuntu

转载 作者:IT老高 更新时间:2023-10-28 12:51:21 26 4
gpt4 key购买 nike

由于某种原因,我无法远程连接到我的 MySQL 服务器。我已经尝试了所有方法,但仍然出现错误。

root@server1:/home/administrator# mysql -u monty -p -h www.ganganadores.cl
Enter password:
ERROR 1045 (28000): Access denied for user 'monty'@'server1.ganganadores.cl' (using password: YES)

现在,我已经尝试运行了

 GRANT ALL ON *.* to monty@localhost IDENTIFIED BY 'XXXXX'; 
GRANT ALL ON *.* to monty@'%' IDENTIFIED BY 'XXXXXX';`

还是什么都没有!我做错了什么?

EDIT:my.cnf 已将绑定(bind) ip 注释掉。

最佳答案

要将 MySQL 暴露给 localhost 以外的任何内容,您必须具有以下行

适用于 mysql 5.6 及以下版本

/etc/mysql/my.cnf中取消注释并分配给您的计算机IP地址而不是环回

适用于 mysql 5.7 及以上版本

/etc/mysql/mysql.conf.d/mysqld.cnf中取消注释并分配给您的计算机IP地址而不是环回

#Replace xxx with your IP Address 
bind-address = xxx.xxx.xxx.xxx

或者添加一个bind-address = 0.0.0.0 如果你不想指定 IP

然后使用新的 my.cnf 条目停止并重新启动 MySQL。运行后转到终端并输入以下命令。

lsof -i -P | grep :3306

这应该会在 xxx 的实际 IP 中返回类似这样的内容

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

如果上述语句正确返回,您将能够接受远程用户。但是,要让远程用户以正确的权限连接,您需要在 localhost 和 '%' 中创建该用户。

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

那么,

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

最后,

FLUSH PRIVILEGES; 
EXIT;

如果您没有像上面那样创建相同的用户,当您在本地登录时,您可能会继承基本 localhost 权限并遇到访问问题。如果要限制 myuser 的访问权限,则需要阅读 GRANT 语句语法 HERE如果您完成了所有这些并且仍然有问题,请发布一些额外的错误输出和 my.cnf 适当的行。

注意:如果 lsof 没有返回或找不到,您可以安装它 HERE基于您的 Linux 发行版。您不需要 lsof 来使事情正常工作,但是当事情没有按预期工作时,它非常方便。

更新:如果即使在 my.cnf 中添加/更改 bind-address 后也不起作用,请在最初声明的位置进行更改:

/etc/mysql/mariadb.conf.d/50-server.cnf

关于mysql - 远程连接 Mysql Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com