mysql设置远程连接后本地不能登陆了

之前用下边这个设置的,设置完后云服务器可以用mysql了,但是本地的上不去了:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;


img

img

查了很久,试了很多方法还是不行。
另外还有个问题,我是在云服务器上安装了mysql,这个和我本地的为什么会有影响呢?

应该是你的云服务器防火墙或者安全策略没有放开mysql服务器的端口

理论上两者是独立的,并不会互相有影响。
但是如果您在云服务器上对MySQL进行了某些设置或更改,可能会影响您在本地访问数据库的方式。比如:防火墙、账号密码、网络配置。

试下:

  1. 首先,登录到您的云服务器并打开MySQL命令行客户端。
  2. 执行以下命令,还原对本地'root'用户的权限:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@localhost;
FLUSH PRIVILEGES;

这将从本地'root'用户上收回了所有权限。
3. 然后,您可以为远程访问设置单独的用户和权限。例如,如果您希望允许从任何IP地址(即远程访问)使用特定用户'myuser'登录,可以执行以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

请注意,上述命令将为'myuser'用户设置远程访问权限,并且您需要将'password'替换为您想要的实际密码。
4. 最后,您应该能够从本地计算机和远程服务器使用不同的用户名和凭据来访问MySQL。

参考gpt:
至于为什么你的本地连接不上MySQL服务器,有以下一些可能原因:

防火墙问题:确保你的云服务器上的MySQL端口(默认是3306)没有被防火墙阻止。你需要允许本地电脑的IP地址访问这个端口。

MySQL绑定地址:检查MySQL配置文件(通常是my.cnf或my.ini),确保MySQL服务器绑定到了正确的网络接口,以允许远程连接。你可能需要将绑定地址设置为0.0.0.0,以接受所有IP地址的连接。但这也要谨慎操作,因为会增加潜在的安全风险。

用户权限问题:确保你在本地使用的MySQL用户具有正确的权限,并且连接字符串中的用户名和密码是正确的。

网络问题:确保你的本地计算机可以访问云服务器上的MySQL端口,可能需要检查网络配置、VPN等。

最后,关于为什么在云服务器上安装MySQL会影响本地连接的问题,通常情况下,这两者应该是相互独立的,但如果你在云服务器上对MySQL进行了一些全局设置(例如更改了MySQL的监听地址或端口),这可能会影响到本地连接。确保你在云服务器上的MySQL配置没有导致这种情况。

 开通远程访问授权,本机可以访问服务器上数据库。
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;
执行完上面语句后,执行下面语句。
FLUSH PRIVILEGES;

可以看一下这篇博客,一边介绍了怎么去安装mySQL以及遇到的问题。
http://t.csdn.cn/SOvRM

引用 皆我百晓生 小程序回复内容作答:
MySQL设置远程连接后本地不能登录的问题有以下几个可能原因:

  1. 防火墙问题:在云服务器上设置了MySQL的远程连接后,可能需要确保本地机器的防火墙允许从本地连接到云服务器的MySQL端口(通常是3306端口)。

  2. MySQL权限问题:检查在云服务器上给root用户赋予了远程登录权限后,是否还给root用户设置了限制只能从本地登录的权限。可以尝试删除'root'@'localhost'的权限限制。

  3. MySQL配置问题:检查云服务器上的MySQL配置文件(一般是my.cnf或my.ini文件),确保配置项bind-address没有设置为127.0.0.1或localhost,而是设置为0.0.0.0或云服务器的IP地址,允许来自任何IP地址的连接。

关于云服务器和本地电脑之间为什么会有影响,可能是因为云服务器的MySQL服务启动后监听的是云服务器的IP地址,如果远程连接设置有问题,则无法通过本地IP地址连接上MySQL服务。同理,如果MySQL服务绑定了本地IP地址,远程连接也会受到影响。

总而言之,需要确保正确设置了防火墙规则、MySQL用户权限和MySQL配置项,才能保证远程和本地都可以正常连接MySQL服务。如还有问题,请提供更多相关的日志或报错信息,以方便更具体地帮助解决。


mysql远程可登录,本地无法登陆问题_mysql本地不能登录 远程可以_tshangshi的博客-CSDN博客 好吧,遇到了mysql远程可登录,本地无法登陆的问题。原因其实很简单,mysql中一个用户名为空的访问本地权限的字段,所有登陆时优先匹配了这一条,就无法登陆了。 #mysql -uroot -pselect user,host from mysql.user;#删除用户即可drop user ''@localhost;_mysql本地不能登录 远程可以 https://blog.csdn.net/tshangshi/article/details/52244394

这个报错是因为, 你电脑环境变量找不到你要启动那个mysql

前几天遇到过., 你这个应该是曾经安装过一个mysql5.0或者其他版本后面有重新安装了一个版本的MySQL. 然后你看一下自己的环境变量,应该是有两个MySQL地址, 然后在cmd里面看一下里面启动的MySQL地址又是一个,实际的MySQL地址是环境变量里面mysql中地址的一个
然后看一下服务, 里面是不是有个MySQL,然后一个MySQL80

img

然后采用各种手动启动MySQL都会失败, 大概是下面的报错或者,在cmd里面也是报错找不到MySQL之类的

img

参考gpt:
结合自己分析给你如下建议:
您好,根据您的描述,您在云服务器上安装了mysql并设置了远程连接,但是本地连接不上了。这可能是因为您在设置远程连接时,将root用户的host设置为了%。这样会导致root用户可以从任何IP地址连接到MySQL服务器,但是如果您的本地IP地址不在允许的IP地址列表中,则无法连接到MySQL服务器。您可以尝试将root用户的host设置为本地IP地址或者使用其他允许的IP地址。
至于您另外一个问题,云服务器上安装的mysql和本地的mysql是两个独立的实例,它们之间没有直接的影响。但是如果您在云服务器上安装了mysql并且将其设置为公共可访问,则可能会受到来自互联网的攻击。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
当你在云服务器上设置MySQL允许远程连接后,本地连接无法成功的原因可能有以下几个方面:

  1. 防火墙设置: 在云服务器上启用远程连接后,确保云服务器的防火墙(比如阿里云的安全组)已经正确配置,允许来自本地计算机的MySQL连接。你需要检查云服务器的网络安全组规则,确保允许本地计算机在指定的MySQL端口上进行连接。

  2. MySQL用户权限: 确保在云服务器上正确设置MySQL用户的权限。你可以使用以下命令检查是否已经为远程连接的用户赋予了合适的权限:

    SHOW GRANTS FOR 'root'@'%';
    

    确保结果中包含对应用户的远程连接权限。

  3. MySQL配置文件: 检查云服务器上的MySQL配置文件,确认是否正确配置了允许远程连接。配置文件通常是my.cnfmy.ini,具体名称和位置取决于你的操作系统和MySQL版本。确保以下配置项存在并设置正确:

    bind-address = 0.0.0.0
    skip-networking = false
    

另外,关于你提到的云服务器安装的MySQL为什么会影响本地的连接问题,可能是由于以下原因:

  • 默认情况下,MySQL的安装会将bind-address配置为本地地址(例如127.0.0.1),这意味着MySQL只监听本地连接。当你在云服务器上将bind-address配置为0.0.0.0以允许所有地址的连接时,本地连接可能会受到影响。你可以尝试将云服务器的MySQL配置恢复为默认值,并使用端口转发或SSH隧道等技术在本地与云服务器进行安全连接。

  • 另一个可能的原因是,你在云服务器上修改了MySQL的用户权限,可能无意中更改了本地连接的权限。确保在云服务器上设置远程连接时,不会影响到本地连接的权限设置。

请根据上述建议检查和调整云服务器和本地计算机的配置,以确保正确设置MySQL的远程连接和本地连接。如果问题仍然存在,请提供更多详细的错误信息,以便我能够给出更具体的帮助。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

云服务器数据库设置并不会对 本地的mysql配置产生影响 端口都不会占用 因为是不同的设备
你可能把本地的服务不小心停了

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^