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

如何设置MySql授权以允许外部连接到MySql?,mysql,database,rdbms,Mysql,Database,Rdbms,我不太喜欢DB,我有以下问题 我已经在远程的Ubuntu 16.04上安装了MySql 5.7.17,我必须从笔记本电脑上安装的客户端连接到这个服务器 因此,我所做的第一件事是将绑定地址指令值(改为/etc/mysql/mysql.conf.d/mysqld.cnf文件)从: 致: 也允许外部连接 问题是,当我尝试从我的客户端(安装在我的笔记本电脑上)连接时,我会出现以下错误: Host 'XXX.YYY.ZZ.JJ' is not allowed to connect to this MySQ

我不太喜欢DB,我有以下问题

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

因此,我所做的第一件事是将绑定地址指令值(改为/etc/mysql/mysql.conf.d/mysqld.cnf文件)从:

致:

也允许外部连接

问题是,当我尝试从我的客户端(安装在我的笔记本电脑上)连接时,我会出现以下错误:

Host 'XXX.YYY.ZZ.JJ' is not allowed to connect to this MySQL server
(其中**XXX.YYY.ZZ.JJ*是我的笔记本电脑IP地址)

据我所知,我还必须授予mysql用户从任何主机而不仅仅是本地主机进行连接的db权限

我认为这应该与赠款有关:

我到底要做什么?我认为我必须从我的服务器外壳访问MySql(通过SSH),然后执行一个查询,向root用户(MySql用户)授予一些权限,以允许从外部访问


但我不知道我到底要做什么。如何允许roo用户使用此外部连接?

如您所述,您需要使用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';

正如您所提到的,您需要使用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';

您是否尝试创建管理员用户而不是使用root?@kgrwhite否,区别是什么?这可能是一种预防措施,可以阻止外部来源对root用户的访问。这会发现是否是这样。您是否尝试创建管理员用户而不是使用root?@kgrwhite否,区别是什么?这可能是一种预防措施,可以阻止外部来源对root用户的访问。这会发现是否是这样。我可以指定MySql上的所有数据库吗?是的,我的答案会用另一个命令更新所有数据库吗?我可以指定MySql上的所有数据库吗?是的,我的答案会用另一个命令更新所有数据库