我们经常需要从本地或外部服务器连接到 MySQL 数据库,默认情况下mysql只允许本地登录,下面我们就来看看如何配置 MySQL 以允许远程连接。本教程完全按照操作顺序整理,从配置文件修改到用户授权,再到局域网与异地外网远程连接测试,让你在不同内网间也能顺畅远程连接自己的mysql数据库。
一、修改 MySQL 配置文件,允许监听外部 IP
1. Linux配置文件
Linux 系统一般位于 /etc/mysql/mysql.conf.d/mysqld.cnf
或者使用命令查找:
mysql --help | grep "my.cnf"
修改 bind-address
找到如下行:
bind-address = 127.0.0.1
将其改为:
bind-address = 0.0.0.0
这表示监听所有 IP 地址上的连接请求。
2.windows配置文件
对于Windows系统:
打开配置文件:
C:\ProgramData\MySQL\MySQL Server X.X\my.ini
找到[mysqld]部分,并添加或修改以下行:
bind-address = 0.0.0.0
这样 MySQL 就会监听所有网卡的 IP,允许外部设备连接。
二、创建或授权远程访问用户
1、查询用户远程权限
查询用户表看是否有远程权限命令:select User,authentication_string,Host from user;
这里也可以看出host默认都是localhost只有本机访问权限
2、设置root用户远程权限
这里的123456为给root设置的密码,也可以改成自己的密码,%代表所有主机,也可以具体到你的主机ip地址
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
mysql> flush privileges;
flush privileges;这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
执行完这两步,再次查询用户表命令:
select User,authentication_string,Host from user;即可以看到对应root用户host不再是localhost而是显示%允许其他设备远程连接状态的了。

3、创建新用户或指定用户可远程(按需)
创建新用户并授权远程访问
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
‘remote_user’@‘%’ 表示任何IP 都可以使用 remote_user 登录。
修改已有用户给予远程权限
GRANT ALL PRIVILEGES ON *.* TO 'existing_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
三、局域网内远程连接
在同一个局域网内另台电脑上,可以通过命令进行远程连接测试
mysql -u remote_user -p -h mysql-server-ip --port=3306
或用mysql客户端添加连接时,输入对应目标内网IP、root或其他mysql用户名、密码,进行远程连接访问操作。
四、不同内网跨网异地远程连接访问
对于内网A部署安装的mysql,想让内网B和其他外部网络上直接远程连接访问的,可以借助nat123端口映射方式快速实现。
1、确保局域网内可以正常远程连接
参考上面步骤,在mysql服务器本地开放允许用户远程权限,并在局域网内另台电脑上测试远程正常。
2、使用nat123映射内外网地址
在mysql数据库服务器本地,或所在内网另台互通主机上,使用nat123客户端添加个映射设置:选择非网站类型,并填写对应mysql的内网IP端口和外网地址(用自己域名或默认生成的自定义二级域名)。
注意如使用了自己域名来作为公网地址的,同时在外网地址填写上自己域名,同时在自己注册域名解析网上添加对应的cname指向让自己域名生效。
3、异地远程连接mysql数据库
在外部环境和任意联网下设备需要远程连接时,通过命令或mysql客户端添加连接,使用对应的外网域名端口(和对应已设置可远程权限的mysql帐号密码)即可。
快速了解相关:
使用端口映射还是动态域名解析?>
端口映射与动态域名解析的区别?>
选择什么映射类型?
80映射与网站加速的区别?>
本地加速与网站加速的区别?>
免费与VIP的区别?>
如何选择映射VIP?
如何使用映射VIP(80网站)?>
如何使用映射VIP(非网站)?>
如何使用动态域名解析VIP服务?
如何使用自己的域名(根域名和www子域名)?>
客户端帐号能否多处登陆?
当前活动:
1.
非80映射免费VIP。
2.
80映射免费VIP全映射。
3.
非网站免费VIP全端口。
4.
充值送N币再送T币。
5.
站外分享送T币活动。
端口映射高级功能:
1.
如何切换使用映射VIP线路。
2.
http穿透解决http屏蔽问题。
3.
端口映射应用多机负载均衡。
4.
80映射网站默认使用快照提示取消。
5.
映射网站默认未登录提示页面自定义。
6.
如何设置映射网站离线转跳自定义目标地址。
7.
防火墙与访问日志(查看来访者IP和阻止IP端口)。
8.
80网快照录制和缓存删除。
9.
自主发布映射服务。
10.
自主选择网站集群线路访问端国内外区域。
动态域名解析高级功能:
1.
动态域名解析应用多机负载均衡。
2.
动态域名解析VIP怎么用。
域名解析高级功能:
1.
域名解析A记录宕机检测和故障转移。
2.
URL显性转发和隐性转发。
3.
URL转发默认提示取消。
远程开机:
1.
微信/网页远程开机。
|
|
|