如何安装在Ubuntu上MariaDB的加莱拉集群 16.04

如何安装在Ubuntu上MariaDB的加莱拉集群 16.04

MariaDB的加莱拉为MariaDB的多主群集. 由于MariaDB的 10.1, 在MariaDB的服务器和MariaDB的加莱拉Server软件包已被结合并安装MariaDB的时候加莱拉包及其依赖都会自动安装. 目前, MariaDB的加莱拉集群仅支持InnoDB的/ XtraDB存储引擎. 在MariaDB的 10.0 和 5.5, 您将需要单独下载. MariaDB的加莱拉增加冗余站点的数据库. 在MariaDB的加莱拉集群, 多个数据库服务器互相连接,并保持同步.

MariaDB的加莱拉提供了大量的功能, 下面列出了其中一些:

  1. 同步复制.
  2. 自动节点加入.
  3. 主动 - 主动多主拓扑.
  4. 真正的并行复制, 对行级.
  5. 读,写的可扩展性, 规模较小的客户端延迟.
  6. 失败的节点, 从集群自动落.

在本教程中, 我们将解释如何安装MariaDB的加莱拉集群 10.1 与 3 在Ubuntu上运行的节点 16.04 服务器. 我们还将测试所有节点之间的数据库复制.

要求

  • 三个节点的运行Ubuntu 16.04 服务器.
  • 节点1使用静态IP地址 192.168.0.102, 节点2使用静态IP地址 192.168.0.103 和节点3使用静态IP地址 192.168.0.104 在您的服务器上配置.
  • 使用sudo权限设置中的所有节点上非root用户.

入门

第一次, 你将需要更新所有最新版本的节点. 你可以用以下命令来更新所有的人:

sudo apt-get 来更新-y
sudo apt-get 来升级-y

下一个, 重新启动所有应用这些更改的节点. 然后, 登录使用sudo用户,并继续到下一个步骤.

安装MariaDB的加莱拉

MariaDB的服务器和MariaDB的加莱拉Server软件包结合在版本MariaDB的 10.1. 默认情况下, MariaDB 10.1 是不是在Ubuntu默认软件仓库, 所以你需要添加所有节点上的MariaDB的存储库.

第一次, 加上用下面的命令MariaDB的存储库密钥:

sudo apt 关键 adv –recv的密钥 –密钥服务器HKP://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

下一个, 添加该存储库和更新使用以下命令的APT缓存:

须藤附加易于存储库“DEB [拱= AMD64,I386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial主’
sudo apt-get 来更新-y

一旦存储的更新, 用下面的命令来安装MariaDB的:

命令和apt-get安装MariaDB的服务器的rsync -y

上面的命令将安装MariaDB的与加莱拉和几个依赖. 所述加莱拉零件保持休眠直到被配置, 像插件或存储引擎. 一旦MariaDB的安装在所有节点上, 您可以继续确保MariaDB的.

默认情况下,MariaDB的安装不固定, 所以你需要确保MariaDB的安装. 您可以通过运行该脚本mysql_secure_installation做到这一点:

sudo mysql_secure_installation

在这个过程中, 你会被要求设置root的密码, 删除匿名用户, 远程禁止根登录和删除测试数据库. 回答所有的问题如下图所示:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

一旦MariaDB的固定所有节点上, 你可以进行下一步.

Node1上安装MariaDB的集群

第一次, 转到Node1和创造加莱拉配置文件. 默认情况下, MariaDB的从/etc/mysql/conf.d/目录中读取配置. 要这样做, 运行以下命令:

sudo的纳米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

保存该文件,当你完成.

注意: 192.168.0.102 是Node1的IP地址

添加节点2上加莱拉集群

下一个, 转到节点2并创建加莱拉一个配置文件:

sudo的纳米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

保存该文件,当你完成.

注意: 192.168.0.103 是节点2的IP地址.

添加节点3上加莱拉集群

下一个, 去到节点3并创建加莱拉一个配置文件:

sudo的纳米/etc/mysql/conf.d/galera.cnf

添加以下行:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

保存该文件,当你完成.

注意: 192.168.0.104 是节点3的IP地址.

配置防火墙

加莱拉Cluster使用四个端口 3306 为MySQL客户端连接, 4444 国有快照转移, 4567 对于加莱拉集群复制流量和 4568 对于增量状态转移. 所以,你需要允许使用UFW防火墙所有这些端口. 您可以通过在所有节点上运行以下命令做到这一点:

第一次, 使得能够与以下命令UFW防火墙:

sudo ufw 启用

下一个, 允许所有使用以下命令的端口:

须藤UFW允许3306 / TCP
须藤UFW允许4444 / TCP
须藤UFW允许4567 / TCP
须藤UFW允许4568 / TCP
须藤UFW允许4567 / UDP

然后,您可以检查与下面的命令防火墙的状态:

sudo ufw 状态

一旦UFW防火墙的所有节点上配置, 你可以进行下一步.

启动MariaDB的加莱拉集群

当成功地配置所有节点, 转到节点1,并开始加莱拉集群.

之前加莱拉可以启动, 你需要确保MariaDB的服务已停止所有节点上.

在所有节点上执行以下命令:

sudo 立即停止 mysql

现在, 用下面的命令启动Node1上加莱拉集群:

须藤galera_new_cluster

现在, 检查集群是否正在运行或不使用下面的命令:

的MySQL -u根-p -e “像“wsrep_cluster_size”显示状态”

如果一切正常,你应该看到下面的输出:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

在节点2, 启动MariaDB的服务:

须藤systemctl启动MySQL

您可以检查MariaDB的服务的状态是否正常工作或不使用下面的命令:

sudo 立即地位 mysql

如果一切都很好, 您应看到以下输出:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh的-c systemctl取消设置环境_WSREP_START_POSITION(代码= EXITED, status=0/SUCCESS)
  Process: 713 ExecStartPost =的/ etc / MySQL的/ Debian的开始(代码= EXITED, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh的-c [! -e的/ usr /斌/ galera_recovery] && VAR = || VAR =`的/ usr /斌/ galera_recovery`; [ $?-情商 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh的-c systemctl取消设置环境_WSREP_START_POSITION(代码= EXITED, status=0/SUCCESS)
  Process: 514 ExecStartPre =的/ usr / bin中/安装-m 755 -øMySQL的-g根-d的/ var /运行/ mysqld的(代码= EXITED, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (限制: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10:11:11的Debian systemd [1]:启动MariaDB的数据库服务器...
Sep 17 10:11:15的Debian mysqld的[661]: 2017-09-17 10:11:15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10:11:20的Debian systemd [1]:发起者MariaDB的数据库服务器.

现在, 你的第二个节点应该已经自动链接到集群. 您可以验证使用以下命令:

的MySQL -u根-p -e “像“wsrep_cluster_size”显示状态”

如果一切运作良好, 簇的大小应设置两个:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

在节点3, 启动MariaDB的服务:

须藤systemctl启动MySQL
的MySQL -u根-p -e “像“wsrep_cluster_size”显示状态”

如果一切运作良好, 簇的大小应设置为三条:

+--------------------+-------+
| VARIABLE_NAME |值|
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

您集群现在的工作和相互通信.

测试数据库复制

现在, 所有节点都在线, 它的时间跨越加莱拉集群测试的数据库复制. 让我们通过创建节点1数据库启动,并检查它是否在所有节点上复制.

第一次, 登录到使用下面的命令MariaDB的控制台:

mysql-u 根-p

输入您的root密码,并创建名TEST_DB数据库:

MariaDB [(无)]> 创建数据库TEST_DB;
MariaDB [(无)]> 显示数据库;

+--------------------+
|数据库|
+--------------------+
| TEST_DB |
+--------------------+

现在去2,3两个节点, 然后检查复制是否工作:

mysql-u 根-p
MariaDB [(无)]> 显示数据库;

+--------------------+
|数据库|
+--------------------+
| TEST_DB |
+--------------------+

恭喜!您已成功安装并在Ubuntu配置MariaDB的加莱拉集群 16.04 服务器.

结论

我希望你现在有足够的知识在Ubuntu上安装和配置MariaDB的加莱拉集群 16.04. 现在,您可以轻松地扩大到几, 甚至几十, 的不同节点. 如果您有任何疑问或多个查询, 再参考链接 加莱拉集群文件