Win下通过 Navica t连接Ubuntu下MySQL数据库

昨天博主遇到一个很棘手的问题,就是如何使用Windows 去连接Ubuntu 下MySQL数据库,最后在网上查阅了相关的资料,浏览了很多前辈们的博客,终于解决这个问题了。

我的电脑配置情况是Windows10 ,Navicat Premium 12,Ubuntu 16.04 和MySQL5.7

除了Ubuntu 16.04系统是必须的。其他的配置区别就不那么重要了。

在这个连接过程中,必须要保证几点:

  • 1.Ubuntu的防火墙要关闭
  • 2.MySQL开放root用户的访问权限
  • 3.两台主机电脑必须互相能Ping通

我当初的问题就出在第三步了。在局域网下,必要要保证在同一个网段下,而且还要在同一个交换机下,如果不在一个交换机下,虽然可以ping通,但是Navicat是连不上的,会给你报错10061错误)

具体步骤如下:

1.配置Ubuntu的防火墙

打开3306端口:sudo ufw allow 3306

在这里插入图片描述

查看防火墙的状态:sudo ufw status

在这里插入图片描述

开启防火墙:sudo ufw enable

在这里插入图片描述

关闭防火墙:sudo ufw disable

在这里插入图片描述

设置默认的防火墙防御:sudo ufw default deny

2.修改数据库的权限配置

2.1 首先要连接数据库

mysql -u root -p

在这里插入图片描述

使用你的数据库

use mysql

在这里插入图片描述

2.2.查看root的权限
因为我已经设置过了,所以这里是host是%,局域网内的任何ip都可以访问。

select user,host from user;

在这里插入图片描述
其中%代表开放连接(就是谁都能连),localhost代表本机IP连接权限,也可以对某个IP进行授权。

2.3.对root用户授权,这里提供两种方法。  
方法一、本地登入mysql,更改 “mysql” 数据库里的 “user” 表里的 “host” ,将"localhost"改为"%"

use mysql;
update user set host = '%' where user = 'root';

在这里插入图片描述

方法二:直接授权(推荐)

 grant all privileges on *.* to root@'%' identified by '你的密码' with grant option;

在这里插入图片描述

2.4刷新一下权限

flush privileges;  

在这里插入图片描述
2.5.修改配置:
mysql连接配置文件存放在下面那个文件夹

/etc/mysql/mysql.conf.d

在这里插入图片描述
进入里面用vi打开文件

sudo vi mysqld.cnf

找到bind-address =‘一个IP’,在下面输入bind-address = 0.0.0.0然后保存退出。
在这里插入图片描述

2.6退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录

EXIT 

2.7.查看自己的mysql服务器是否运行

sudo netstat -lntp 

在这里插入图片描述
这个表示你的mysql服务器在运行,授权和配置也搞好了,如果没显示重启mysql看看效果。

2.8查看你主机的IP输入:

ifconfig 

3.通过Navicat 连接Ubuntu 下的MYSQL数据库。

在windows中的Navicat上输入基本上就搞定了。连接名自己取,端口3306,root不变,把localhost换成你主机的IP,输入密码。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38819889/article/details/89372211