配置MySQL服务器使得外网可以连接
2017-11-08 17:52
246 查看
在一台电脑上安装了MySQL服务器后,默认是不允许外网可以连接至该服务器上的MySQL的,不进行额外配置的话可能会出现如下两种连接错误的情况(我用的是Navicat MySQL客户端在Windows上连接Ubuntu上的MySQL数据库)。
图1 端口绑定问题
图2 权限问题
前者是因为默认绑定端口问题,后者则是数据库权限的问题。
输出如下图:
如图,3306端口是默认绑定在本地IP 127.0.0.1上的,所以外网无法访问该主机的3306端口。
打开MySQL的配置文件:
找到如下内容的一行并注释掉:
重启MySQL服务
然后使用如下命令查看端口绑定状态
输出如下图:
然后选择mysql数据库并查看user表信息
显示如下图
发现root账户只允许localhost访问,所以外网无法访问。
可以使用如下命令给外网访问授权
其中[允许的ip]如果设置为%的话则表示所有ip都可以访问,[密码]表示外网访问的密码是什么。比如我设置成所有ip都可访问,密码是root,则命令如下:
然后再查看表中的信息
输出如下:
至此,外网用户就可以访问你的MySQL服务器了。作者在Windows上没有尝试过,但是好像Windows上不会有端口绑定的问题,而且据说windows下连配置文件都没了([尴尬])。
图1 端口绑定问题
图2 权限问题
前者是因为默认绑定端口问题,后者则是数据库权限的问题。
解决问题一
首先使用如下命令查看3306端口绑定状态sudo netstat -an | grep 3306
输出如下图:
如图,3306端口是默认绑定在本地IP 127.0.0.1上的,所以外网无法访问该主机的3306端口。
打开MySQL的配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到如下内容的一行并注释掉:
bind-address = 127.0.0.1
重启MySQL服务
sudo systemctl restart mysql
然后使用如下命令查看端口绑定状态
sudo netstat -an | grep 3306
输出如下图:
解决问题二
问题二是因为MySQL自带的权限控制限制了外网访问MySQL服务器,在Ubuntu主机上使用命令行连接至本地MySQL数据库sudo mysql -uroot -p[你的密码]
然后选择mysql数据库并查看user表信息
use mysql select user,host from user
显示如下图
发现root账户只允许localhost访问,所以外网无法访问。
可以使用如下命令给外网访问授权
grant all privileges on *.* to 'root'@'[允许的ip]' identified by '[密码]' with grant option; flush privileges;
其中[允许的ip]如果设置为%的话则表示所有ip都可以访问,[密码]表示外网访问的密码是什么。比如我设置成所有ip都可访问,密码是root,则命令如下:
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;
然后再查看表中的信息
select user,host from user;
输出如下:
至此,外网用户就可以访问你的MySQL服务器了。作者在Windows上没有尝试过,但是好像Windows上不会有端口绑定的问题,而且据说windows下连配置文件都没了([尴尬])。
相关文章推荐
- 配置virtualbox使得openstackn controller可以连接外网
- MySQL在服务器本机登录不上,不管是localhost还是127.0.0.1都登不上,但是通过远程可以连接上
- 搭建了一个Apache+Php+MySQL的服务器。要如何通过Apache发布网站使得其他的电脑可以通过局域网访问?
- MYSQL远程登录权限设置 ,可以让Navicat远程连接服务器的数据库
- windows下安装php、apache、mysql,并使得外网可访问内网的机器,搭建svn服务器提供版本控制
- mysql 允许多台远程服务器连接(外网连接)
- 阿里云服务器配置MySQL远程连接
- 远程连接Mysql服务器配置
- 25、MySQL 8.0 5.1.9.2 配置MySQL服务器允许IPv6连接
- CentOS下httpd下php 连接mysql 本机可以,外网报错Could not connect: Can't connect to MySQL server on '127.0.0.1' (13)2003 原因解析
- phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.您应该检查配置文件中的
- 当你死活都无法远程连接到服务器上的MySQL时,你得考虑一下远程工具配置了(Navicat)
- phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。您应该检查配置文件中的主机、用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致。
- 腾讯云服务器的配置与部署(二):MySQL的配置安装、云服务器与云数据库的连接
- Virtualbox 中使用 HostOnly的网络连接,配置后guest机可以上外网
- mysql数据库跨服务器查询【需要确定mysql支持FEDERATED ,可以参照文章内容自己配置】
- 如何在本地建立服务器以后使得外网可以访问(nat123)
- MYSQL远程登录权限设置 ,可以让Navicat远程连接服务器的数据库
- 转发,windows下安装php、apache、mysql,并使得外网可访问内网的机器,搭建svn服务器提供版本控制