一、写于2019.12.23
navicat:不修改数据库配置的情况下直接连接【先配置SSH,就是putty或者xshell远程连接的方式连接,然后再配置常规,主机localhost即可,相当于进入主机之后操作的数据库,完美!!】
二、写于2019.6.14
虚拟机新装mysql时,由于权限不够,本地连不上,只能在虚拟机内部mysql操作。
1、首先sufo ufw status查看防火墙是否开启,状态为inactive说明没有开启防火墙。
2、然后输入netstat -an|grep 3306查看端口启动和占用情况,可以看到绑定为127.0.0.1,这块需要我们修改为0.0.0.0。
3、进入虚拟机,修改mysql访问权限,依次执行
mysql -uroot -p
use mysql;
4、更新某一条mysql用户的权限(新装的mysql可以不执行第四步)
select host,user from user where user='root';
//如果上面查询到有信息,但host为localhost或其他值,就需要根据实际需求来更新表信息
//host代表本地可以访问
update user set host='%' where user='root' # 如果想任何的IP地址都可以使用root用户来远程登陆(注意如果上面的查询语句,查询出来有多条,就需要做一些处理,比如多加一个条件如 where user='root' and host='localhost'或先删除其他人记录只保存一条user='root'的记录)
5、指定所有客户端都可以使用root账户访问mysql。
//更改权限 语法模板
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
//指定所有客户端都可以使用root账户访问mysql。
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
//退出mysql,重启服务
exit;
sudo service mysql restart
注释:
库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码
5、输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ,修改mysql配置文件。
将bind-address修改127.0.0.1为0.0.0.0。
最后,重新输入账号密码就可以了。参考链接