所以我跟着本指南使我的笔记本电脑能够远程访问 MySQL 服务器。但是,我的 IP 发生了变化,我希望能够访问我网络之外的服务器。如果客户端 IP 有密码,我该如何允许他们访问它?
以下是我所指的主要命令:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'client.ip.goes.here' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
有什么办法吗?
答案1
我以前也遇到过类似的问题。我的解决方案是通过 SSH 隧道建立 MySQL 连接。这种方法快速而粗糙,但很有效。首先,使用 my.cnf 将 MySQL 绑定到 127.0.0.1 &
绑定地址 = 127.0.0.1
这意味着 MySQL 在网络中不再可用。除非查询来自本地主机,否则它不会再回答任何查询。之后,我安装并配置了 openssh。我不会在这里讨论这个,每个人都有自己最好的想法。只需确保 SSH 在您的网段(或您需要的任何地方)可用。在客户端上,我启动了一个 SSH 隧道。
MySQL客户端:~# ssh -f -L 3306:127.0.0.1:3306 mysqluser@MySQL服务器-N
现在可以通过我的客户端访问 MySQL。只需
mysql -u 根-p -h 127.0.0.1
我经常使用它并且它很有效。
希望对您有帮助。
答案2
授予全部。到 root@'%' IDENTIFIED BY 'your-root-password';
不过,仅使用密码授予完全访问权限有点丑陋。我建议你使用SSL 密钥对于 root 登录,如果您确实需要完全远程访问。