关于本地远程连接数据库报错找了很多方法 可能因为我笨把,很多不是理解 所以,特在此出记录一下,方便下次在遇到解决问题
我的环境 , 服务器 CentOS 7.6 用的MariaDB数据库(测试在mysql数据库方法通用) 本地用的Navicat
1.首先在服务器 mysql -uroot -ppassword 进入数据库后 (-u后面是你的账户名,-p后面是你的密码)
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
首先使用use指定数据库,当然也可以用mysql.user来操作数据表, 此处 ALL 指的是所有操作(‘insert’,'update','delete'...),第一个 * 意思是所有数据库,第二个 * 意思是数据库里面的表 可以换成单独数据库以及数据表, 'admin' 指的是你新建的用户名 然后 @后面的 % 意思是允许外部所有的链接,据说可以换成自己制定的IP,但是我没有成功,所以就不在写出来,然后 BY 后面的是你设置的密码 ,运行这句话运行之后一定执行下面的这句
FLUSH PRIVILEGES;
用来刷新数据库,让你的语句生效,然后就可以使用
select user,host from user
查看当前记录 ,操作没问题的话就会出现你添加的用户
然后接下来,可以去本地使用Navicat连接测试,当然很有可能会出现错误 ,出现错误代码10060的话就要去检查你的防火墙查看3306端口是否放行
firewall-cmd --zone=public --query-port=3306/tcp --permanent
//查看是否开启了3306端口
本人是服务器是CentOs7.0,但是版本之间的操控防火墙的指令可能不一样,所以需要注意一下
如果开启的话会显示 yes 反之 no
如果没开的话可以使用
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//开启3306 同理把 add 换成 remove 就是关闭了
systemctl restart firewalld.service
//重启防火墙命令
然后可以重启一下服务器的防火墙,虽然说很多人建议关闭防火墙,但是我不建议直接关闭。
然后。然后貌似就没了 你可以再本地连接一下试试了,希望你不要忽略可能没网这个条件