我的这篇文章,在ubuntu16.04系统下,安装了mysql数据库,安装成功后,如果你想某台设备可以远程连接mysql的话,必须配置mysql,下面我就以我的Mac电脑使用Navicat 15.0.3远程连接该服务器上的mysql为例。
步骤一:安装完mysql,但没有配置远程连接mysql,直接使用Navicat 15.0.3连接该mysql,提示如下错误
2003 - Can't connect to MySQL server on '149.129.100.132' (61 "Connection refused")
步骤二:修改mysqld.cnf
的文件信息,将127.0.0.1
修改成0.0.0.0
,这样就是开启了远程访问mysql的功能
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
步骤三:改完重启mysql服务(一定要重启,否则上面配置的允许远程连接不生效)。ubuntu16.04下,mysql服务相关的命令各种写法
service mysql restart
步骤四:本地navicat连接后,你会发现提示错误变了,之前是无法连接mysql服务
,现在是可以连接mysql服务,只是没有被授权
。具体报错如下
1130 - Host '58.59.40.246' is not allowed to connect to this MySQL server
步骤五:接下来要在服务器上创建用户名zhangbin
和密码forever18
,授权给某台电脑A,电脑A就用可以用授权过的用户名和密码来访问远程的mysql。
- 步骤5.1:进入mysql Shell
mysql -u root -p123456
- 步骤5.2:使用名为mysql的mysql数据库
use mysql;
- 步骤5.3:创建用户
zhangbin
,并允许zhangbin
用密码为forever18
,以任何主机(任何ip地址)来访问该服务器上的mysql,以此实现对用户zhangbin
的授权
GRANT ALL PRIVILEGES ON *.* TO 'zhangbin'@'%' IDENTIFIED BY 'forever18' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 步骤5.4:刷新
FLUSH PRIVILEGES;
步骤六:本地使用Navicat 15.0.3连接该mysql
公网ip为149.129.100.132
,端口号为3306
,用户名为zhangbin
,密码为forever18
,成功的连接了远程mysql