我不是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用户提供此外部连接?
答案 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';