阅读量:0
要实现MySQL的远程连接,需要确保数据库服务器允许远程访问,并在客户端配置正确的连接信息。
MySQL远程连接数据库_远程连接类
连接远程数据库
显示密码方式
在这种方式下,用户密码直接在命令中明文显示。
mysql -h 192.168.5.116 -P 3306 -u root -p123456
隐藏密码方式
在这种方式下,用户密码不会直接显示,而是在执行命令后提示输入。
mysql -h 192.168.5.116 -P 3306 -u root -p Enter password:
配置MySQL允许远程连接
改表法
1、登录到MySQL服务器的本地终端:
mysql -u root -p
2、修改user
表中的host
字段:
use mysql; UPDATE user SET host = '%' WHERE user = 'root'; SELECT host, user FROM user; FLUSH PRIVILEGES;
授权法
1、授予特定用户从任意主机访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
2、授予特定用户从指定IP地址访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
常见问题及解决方法
问题1:在采用授权法之后,无法在本地使用本地IP地址登录MySQL。
解决方法:
1、登录到MySQL服务器的本地终端:
mysql -u root -p
2、为本地IP地址重新授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'loadb116' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES;
3、或使用本地IP地址登录:
mysql -u root -p -h 192.168.5.116
问题2:防火墙设置导致无法连接。
解决方法:
1、确保双方的防火墙都已关闭,如果使用的是云服务(如阿里云),确保安全组规则已开放3306端口。
2、检查并关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld
相关问题与解答
问题1:如何查看MySQL当前监听的端口号?
解答:
可以通过以下命令查看MySQL当前监听的端口号:
SHOW VARIABLES LIKE 'port';
或者在Linux系统中,使用以下命令查看:
netstat -an | grep LISTEN | grep mysql
问题2:如何限制特定IP地址才能连接到MySQL服务器?
解答:
可以通过修改user
表中的host
字段来限制特定IP地址的连接:
USE mysql; UPDATE user SET host = '192.168.1.3' WHERE user = 'myuser'; FLUSH PRIVILEGES;
这样只有从IP地址为192.168.1.3
的主机才能连接到MySQL服务器。
小伙伴们,上文介绍mysql 远程连接数据库_远程连接类的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。