如何打开MySQL中root账户的远程登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何打开MySQL中root账户的远程登录相关的知识,希望对你有一定的参考价值。

基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤:
1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:
mysql GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql flush privileges;
第一句中"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
2、修改/etc/mysql/my.cnf,需要root用户权限。找到文件中的:
bind-address = 127.0.0.1
将其注释掉,保存。
3、重新启动MySQL服务器。执行下面的几条命令即可:
# /usr/bin/mysqladmin -u root -p shutdown
# /usr/bin/mysqld_safe &
如果mysqladmin和mysql_safe不在/usr/bin目录中,可以通过whereis命令查找,例如:
# whereis mysqladmin
执行完上面的三步后,就可以通过远程机器连接了数据库了。
参考技术A 你看看mysql数据库中user表的内容就明白了,查看的SQL:
select * from mysql.user

mysql里面用户,是上面表的前两个字段host、user共同决定的,如果你只需要从一个固定的IP登录过来,例如192.168.1.1,那么你需要在user表中增加一条记录host=192.168.1.1、user=root。如果你希望从所有机器都能登录root,那么需要此表有一条记录host=%、user=root

现在,你看看你的user表中有几个root用户,把其中一个的host改为%,那么所有主机登录过来的root用户都是次条记录规定的限制。本回答被提问者和网友采纳

mysql 的远程链接字符

在上线环境需要设置允许远程访问,步骤如下:

1.配置my.cnf文件

不同的linux版本,这个文件的位置不同。(以ubuntu14为例)

该文件位置为  /etc/mysql/my.cnf ,编辑该文件 

将bind-address = 127.0.0.1 用#注释起来。

 

2.建一个远程账户,(root账户只允许本地连接,考虑到安全性一般设置一个远程登录的账户)

用root账户登录mysql

#mysql -u  root  -p root的密码

mysql> GRANT ALL ON *.* TO [email protected]‘%‘ IDENTIFIED BY ‘admin‘ WITH GRANT OPTION;   

这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户  和密码(admin)来访问这个MySQL Server   

 

3.刷新权限

#flush privileges;

 

4.重新启动mysql服务

#service mysql restart



以上是关于如何打开MySQL中root账户的远程登录的主要内容,如果未能解决你的问题,请参考以下文章

如何打开MySQL中root账户的远程登录

如何打开MySQL中root账户的远程登录

如何配置mysql的root用户允许远程登录?

开通mysql root 用户远程访问权限(转)

Linux 下如何限制 ROOT 用户远程登陆?

使用OpenSSH远程登录