MySQL 怎样允许MySQL用户从任何主机进行连接?

MySQL 怎样允许MySQL用户从任何主机进行连接?

MySQL是一款广泛使用的关系型数据库管理系统,它的默认安装设置只允许本地连接,如果需要从外部主机进行连接,我们需要对MySQL的配置进行更改。

阅读更多:MySQL 教程

修改配置文件

我们使用MySQL的管理员权限账户进行登录,通过修改配置文件来允许公网访问。找到MySQL的配置文件 my.cnf,在末尾添加如下两行代码:

bind-address    = 0.0.0.0
skip-name-resolve

这两行代码的作用是:

  • bind-address : 指定连接地址,0.0.0.0表示允许从所有IP地址进行连接。
  • skip-name-resolve : 禁用DNS反向解析,加快登录速度,减小服务器负担。

开启用户远程访问

MySQL默认只接受本地IP地址的连接,为了开启用户远程访问,我们需要在数据库内创建一个新用户,并授予该用户外部连接的权限。我们使用root账户在MySQL中创建一个新的远程访问用户,并授予该用户所有主机的外部连接权限。

打开MySQL Client,使用管理员权限登录,并执行以下SQL语句:

CREATE USER '新用户名'@'%' IDENTIFIED BY '密码';

这里将’新用户名’替换为需要创建的新用户的名称,将’密码’替换为新用户的密码。

最后,使用以下SQL语句授予该新用户外部主机的连接权限:

GRANT ALL PRIVILEGES ON *.* TO '新用户名'@'%' WITH GRANT OPTION;

这里需要将’新用户名’替换为上一步中创建的新用户的名称,注意将%符号放在’@’ 符号后作为连接所允许的主机名,表示该用户任意IP都可以连接到这个MySQL服务器。

防火墙设置

为了确保用户能够通过公网访问到我们的MySQL服务端口,我们需要开启防火墙的3306端口,如下命令:

$ sudo ufw allow 3306/tcp

测试连接

最后我们需要测试一下新的设置是否有效,我们可以在远程主机上使用MySQL Client进行测试。在终端中输入以下命令:

$ mysql -h 数据库所在IP地址 -u 账号名 -p

其中,-h选项用于指定需要连接的MySQL数据库所在的IP地址,-u选项用于指定连接的用户名,-p选项表示需要使用密码进行身份验证。

结论

通过以上步骤,我们就可以让MySQL用户从任何主机进行连接了。但是,开启公网访问也意味着风险加大,为了保障数据安全性,我们应该添加密码,并定期修改密码,同时也需要注意过滤非法请求,如建立访问限制,进行基本的黑白名单过滤等。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程