如何设置MySql grant以允许外部连接到MySql?

时间:2017-03-17 15:58:53

标签: mysql database rdbms

我不是DB,我有以下问题。

我在远程 Ubuntu 16.04 服务器上安装了 MySql 5.7.17 ,我必须从笔记本电脑上安装的客户端连接到此服务器。

所以我做的第一件事是我已经改变了 bind-address 指令值(进入 /etc/mysql/mysql.conf.d/mysqld.cnf < / strong> file)来自:

Bind-address=127.0.0.1

为:

bind-address = 0.0.0.0

也允许外部连接。

问题是,当我尝试从我的客户端连接(安装在我的笔记本电脑上)时,我收到此错误:

Host 'XXX.YYY.ZZ.JJ' is not allowed to connect to this MySQL server

(其中** XXX.YYY.ZZ.JJ *是我的笔记本电脑IP地址)。

根据我的理解,我还必须向mysql用户提供db权限,以便从任何主机连接,而不仅仅是从localhost连接。

我认为它应该与赠款有关:https://dev.mysql.com/doc/refman/5.5/en/grant.html

我究竟要做什么?我认为我必须从我的服务器shell(通过SSH)访问MySql,然后执行一个查询,授予 root 用户(MySql用户)一些权限以允许从外部访问。< / p>

但我不知道到底要做什么。如何为roo用户提供此外部连接?

1 个答案:

答案 0 :(得分:2)

如您所述,您需要以root访问权限登录mysql服务器,然后在mysql提示符下运行以下命令

GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_db_user_name'@'%' IDENTIFIED BY 'newpassword';

您还可以指定特定的IP而不是%

GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_db_user_name'@'your_IP_here' IDENTIFIED BY 'newpassword';

您还可以为所有数据库指定

GRANT ALL PRIVILEGES ON *.* TO 'your_db_user_name'@'your_IP_here' IDENTIFIED BY 'newpassword';