Windows环境下使用Navicat 的连接虚拟机中的数据库
1、前提条件:
ubuntu中已经安装mysql,Windows下有navicat premium15或者其他版本都可以。
2、开始准备啦
具体操作大家可以参照这位老师的
视频教程
,我只是可根据此教程下遇到的问题进行解决。
a.打开虚拟机上的mysql:
mysql -u root -p
b.进行远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
但是你可能会遇到报错,格式不正确啥啥的:
先执行:
use mysql;
应该先创建新用户:
create user 'admin'@'%' identified by 'password';
执行授权:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
刷新:
flush privileges;
授权远程:
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
刷新:
flush privileges;
c.再次查询数据库是否已经授权远程:
select * from mysql.user where user='root'\G;
当看到有一条HOST的值为“%”,说明已经授权了。(‘Y’居多)
d.开启防火墙
你应该先确认自己的虚拟机上是否具有防火墙,可以输入firewalld检查是否具有。若是没有的话,我看到网上很多教程都用yum安装,可以直接用sudo命令进行安装,具体我有点忘了语句了。
sudo apt install firewalld
可以试一下这个。
然后开放3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:
systemctl restart firewalld.service
查询防火墙开放的端口:
firewall-cmd --list-ports
e.打开windows中navicat
进行正常连接就可以了
主机的ip地址是linux中的ip地址,可以在终端中输入ifconfig
这个就是了。之后按照老师的就可以了。