如何将MySQL服务器绑定到多个IP地址

默认情况下,MySQL 服务器在一个或所有配置的网络接口上侦听传入的连接请求。为特定用途分配多个网络接口可能很有用。这样,它可以允许为多个网络接口指定绑定地址。

运行你的 MySQL 服务器

以下分步指南介绍了如何从阿里云控制台运行 MySQL 服务器。

登录您的阿里云账号,进入弹性计算服务(ECS):

如何将MySQL服务器绑定到多个IP地址

创建一个新实例。我们将选择一个现收现付实例:

如何将MySQL服务器绑定到多个IP地址

选择镜像 Ubuntu 20.04:

如何将MySQL服务器绑定到多个IP地址

继续配置您的实例,直到结束:

如何将MySQL服务器绑定到多个IP地址

检查您的 IP 接口和 IP 地址

在将您的 IP 地址绑定到 MySQL 之前,检查您的 IP 非常重要,这样您之后就不会进行错误配置:

$ ip a

如何将MySQL服务器绑定到多个IP地址

可以看到我们的服务器有以下IP地址

  • 172.16.212.134
  • 172.16.212.135
  • 192.168.8.106

现在,您可以配置绑定。

为多个 IP 地址配置 MySQL 绑定

如果要配置 MySQL 并绑定 IP 地址,则应编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf并通过用逗号分隔每个地址来更改默认 IP 地址值。要编辑的指令是bind-address.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

如何将MySQL服务器绑定到多个IP地址

重启 MySQL 服务以保存修改:

$ sudo systemctl restart mysql

注意:mysqlx-bind-address指令用于X pluginMySQL 服务器和客户端之间的接口。

确保您有远程数据库用户:

允许 MySQL 用户远程访问

您应该确保您使用的数据库用户被允许远程访问您的数据库。您可以连接到 MySQL 并允许远程访问。我们将在下面创建数据库和用户以向您展示该过程:

mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'your_db_password';
mysql> CREATE DATABASE userdb;
mysql> GRANT ALL PRIVILEGES ON userdb.* TO 'user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

配置防火墙

现在您已经为远程数据库访问配置了 MySQL 和用户,您需要在防火墙内允许 MySQL 协议。我们将只允许 MySQL 端口连接3306到我们之前检查过的指定 IP 地址(接口)以提高安全性。

我们将不使用 IP 地址,而是使用每个 IP 地址对应的接口名称:

$ sudo ufw allow in on ens33 to any port 3306
$ sudo ufw allow in on ens34 to any port 3306
$ sudo ufw allow in on ens35 to any port 3306

然后,重启防火墙服务:

$ sudo ufw disable && sudo ufw enable

结论

MySQL 试图通过允许多个地址监听来带来更多便利,但有一个副作用。每个创建的服务器套接字都计入选项指定的限制–open-files-limit。理论上,如果该选项指定的接口过多,–bind-address如果 MySQL 服务器配置已经打开了大量文件,则可能导致“打开的文件过多”错误。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/9698.html
点赞
4.30 平均评分 (86% 分数) - 165

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注