博客列表 >Root账号 可外部访问的解决方法

Root账号 可外部访问的解决方法

Technical的博客
Technical的博客原创
2017年09月28日 12:31:531440浏览

默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log

首先登录: mysql -u root -h localhost -p

use mysql                #打开mysql数据库


#将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip

     update user set host='%' where user='root' and host='localhost';

     flush privileges;        #刷新权限表,使配置生效

     然后我们就能远程连接我们的mysql了。

3、如果您想关闭远程连接,恢复mysql的默认设置(只能本地连接),您可以通过以下步骤操作:

     use mysql                #打开mysql数据库

     #将host设置为localhost表示只能本地连接mysql

     update user set host='localhost' where user='root';

     flush privileges;        #刷新权限表,使配置生效

备注:您也可以添加一个用户名为yuancheng,密码为123456,权限为%(表示任意ip都能连接)的远程连接用户。命令参考如下:

     grant all on *.* to 'yuancheng'@'%' identified by '123456';

     flush privileges;

问题原因

远程IP没有登录权限,root用户默认只能在localhost也就是只能在本机登录,需要设置允许其他IP登录权限。

 

解决方案

1. 在服务器内部登录数据库,然后执行

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

    此语句意思是给root用户在任何IP都可以登录数据库,操作任何数据库中的任何对象。

其中: 

*.* 第一个*是指数据库

*代表所有数据库

第二个*指数据库对象

*代表数据库中所有对象

 'root'@'%' root是制定要授权的数据库用户

%代表允许登录的IP

123456是你的数据库密码

 

假如要限制只能在1.1.1.1登录,把%改成1.1.1.1 ,执行完毕后执行 flush privileges; 刷新权限


 

2. 然后在远程电脑mysql客户端就可以连接了。


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议