当前位置: 首页 > 面试题库 >

来自所有主机的MySQL根访问

杨甫
2023-03-14
问题内容

我已经在远程Ubuntu计算机上安装了MySQL服务器。通过以下方式rootmysql.user表中定义用户:

mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host             | user | password                                  |
+------------------+------+-------------------------------------------+
| localhost        | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1        | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1              | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+

我可以root使用标准mysql客户端从同一远程计算机命令行界面与用户访问。现在,我想
允许来自Internet上每台主机的root用户访问权限 ,因此我尝试添加以下行(这与上一转储的第一行完全相同,但该host列除外):

mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host             | user | password                                  |
+------------------+------+-------------------------------------------+
| %                | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+

但是我个人PC上的客户端继续告诉我(我掩盖了html" target="_blank">服务器IP):

SQL错误(2003):无法连接到“ 46.xxx”上的MySQL服务器(10061)

我不知道是身份验证错误还是网络错误。在服务器防火墙上,我为端口 3306 / TCP 启用了 0.0.0.0/0 ,这对我来说是可以的…


问题答案:

该过程有两个步骤:

a)授予特权。以root用户身份执行此操作,'password'并用您当前的root密码代替:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';

b)绑定到所有地址:

最简单的方法是 注释掉my.cnf文件中的这一行:

#bind-address = 127.0.0.1

然后重启mysql

service mysql restart

默认情况下,它仅绑定到本地主机,但是如果您注释该行,它将绑定到它找到的所有接口。注释掉该行等效于bind-address=*

要检查mysql服务绑定的位置,请以root身份执行:

netstat -tupan | grep mysql

Ubuntu 16更新

配置文件是(现在)

/etc/mysql/mysql.conf.d/mysqld.cnf

(至少在标准Ubuntu 16上)



 类似资料:
  • 我已经在一台远程Ubuntu机器上安装了MySQL服务器。用户在表中定义如下: 我可以使用标准的客户端,通过用户从同一远程计算机命令行界面进行访问。现在我想允许internet上每台主机的根用户访问,所以我尝试添加以下行(它与上一个转储中的第一行完全重复,除了列): 但我个人电脑上的客户继续告诉我(我遮住了服务器IP): SQL错误(2003):无法连接到'46.x.x.x'上的MySQL服务器(

  • 我有两张桌子。与文章编号相关的图像。还有一张照片上有文章编号 我想要做的是列出第一个表中的所有图像(navn)(它是一个特定的文章编号(art_id))和第二个表中的最多5个图像(其中文章编号(artid)出现在照片(fotostation)上)。 (我现在不知道该怎么做:) 这不起作用 表格: 这些表与fotostation字段相关。要在“ECS_article_images_inneholde

  • 问题内容: 当我以普通用户身份运行容器时,我可以映射 和修改 主机文件系统上root拥有的目录。这似乎是一个很大的安全漏洞。例如,我可以执行以下操作: 现在,我的 主机 文件系统将在键入时执行命令(大多数情况下无害)。我不敢相信这是理想的行为,但是它正在我的系统中发生(debian延伸)。该命令具有普通权限(755,不是setuid)。 我想念什么? 可能需要澄清更多。目前,我对容器本身的作用或可

  • 问题 如果我像下面的例子一样使用属性访问类型,我是否也必须为引用的FK定义getter和setter? 我不认为是这样,但Java EE6的官方文档是这样做的。 null

  • 本文向大家介绍python实现根据主机名字获得所有ip地址的方法,包括了python实现根据主机名字获得所有ip地址的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现根据主机名字获得所有ip地址的方法。分享给大家供大家参考。具体实现方法如下: 运行结果: 希望本文所述对大家的Python程序设计有所帮助。

  • 编辑: 我使用docker网络创建了macvlan,现在我可以使用其他机器ping到我的容器,但是现在,我的容器没有互联网连接来下载东西。 并尝试在此网络中运行容器 docker0:flags=4099 mtu 1500 inet 172.17.0.1 netmask 255.255.255广播172.17.255.255以太网02:42:79:4F:FC:66 TX队列n 0(以太网)RX数据包