不仅仅是虚拟机上,只要是mysql远程连接此方法应该都行
默认情况下,mysql只允许本地登录,因为考虑到安全问题。
开启远程连接,需要如下操作:
1、首先进入黑屏终端,再进入/etc/mysql/mysql.conf.d(文件不一定在这个路径,看个人了)
vim mysqld.cnf 进入这个文件中
找到bind-address = 127.0.0.1这一行,然后改为bind-address = 0.0.0.0
bind-address = 0.0.0.0
2、在连接服务器后,操作mysql系统数据库
进入mysql:mysql -u root -p
输完密码后输入:use mysql;
可以先查看一下数据库中的表:show tables;
可以看到有一个名叫user的表
3、这时,查看一下user表
查询用户表命令:select User,authentication_string,Host from user; (这里也可以看出host默认都是localhost访问权限)
4、默认是只有本地连接,所以要创建一个可以远程访问的用户名即码:
代码格式:GRANT ALL PRIVILEGES ON . TO ‘可以访问的用户名’@’%’ IDENTIFIED BY ‘密码’;
%代表所有主机,也可以具体到你的主机ip地址
如:GRANT ALL PRIVILEGES ON . TO ‘admin123’@’%’ IDENTIFIED BY ‘123456’;
5、创建好后刷新权限:flush privileges;(直接在mysql中操作)
这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
执行完,再次查询用户表:select User,authentication_string,Host from user
可以看到成功添加了用户

6、最后重新启动mysql服务: service mysql restart
这时候就可以在远程开启Navicat for MySQL连接mysql数据库了