mysql8.0远程链接权限设置

主要设置两个地方,一个是数据库的远程链接权限,另一个是须要放开端口3306的访问权限。mysql

从网上查询解决办法,最后都解决不了。网上查到的信息大都是给root用户或者某个用户设置权限,使这个用户能够被远程链接访问。针对该问题的解决办法是经过语句GRANT ALL ON *.* TO 'root'@'%';为root用户(或者是其余用户)设置权限,但我试了几回都是失败的,都报错了,ERROR 1410 (42000): You are not allowed to create a user with GRANT。sql

因为我对mysql的基础知识掌握的不够,暂时也不能说我为了解决这个问题去系统的学习一下基础知识去,先找个成本低的方式解决问题吧。数据库

咱们能够经过上面的解决问题的代码中看到,其实就是给root用户一个访问权限,若是咱们解决了这个问题,也就解决了上面的问题了。其次,咱们知道mysql数据库安装完成后有默认的mysql数据库,里面有个user表,数据就是默认的系统用户的一些信息,包括权限。了解到这里就能够了,那么能够查询里面关键的几项数据来查看下:vim

select host,user,authentication_string,plugin from user;

执行结果以下:centos


咱们看host和user两列,host和user中root对应的值为localhost,即root用户的访问权限为localhost,想把该用户的访问权限设置可远程链接,咱们只须要把localhost更改成通配的%就能够了。上面的权限操做语句没有走通,这里就直接使用update语句来更改吧。app

update user set host = "%" where user = "root";

修改以后就将root用户的访问权限设置成了可远程访问了。tcp

接下来的就要解决3306端口了。学习

解决3306端口的时候,有个小插曲,个人系统是centos7的,和以前版本的开放端口的方式略有不一样,其中的安装安装或者更新iptables-services可参考:http://www.javashuo.com/article/p-glsuoohc-gc.htmlcentos7

接下来居能够开启3306端口了:spa

vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重启防火墙:

service iptables restart

问题已经解决了。问题虽然解决了,但在mysql数据库权限设置那一部分有点投机的意思,正常状况下不能这么解决。不过有的时候时间紧张或知识储备有限的额时候,也能够做为尝试。多作尝试,不要怕出问题,仅限于在本地开发环境,线上的环境仍是要谨慎。