Ubuntu22.04安装mysql集群一主一从

Ubuntu22.04安装mysql集群

以下是在Ubuntu 22.04上安装一主一从的MariaDB集群的步骤:

首先,你需要有两个 Ubuntu 22.04 的服务器,分别命名为 Server1 和 Server2,这两个服务器都需要安装 Mariadb 和 Galera Cluster。

  1. 在 Server1 上安装 Mariadb 和 Galera Cluster

使用以下命令安装 Mariadb 和 Galera Cluster:

sudo apt-get update
sudo apt-get install mariadb-server

同时,可以使用以下命令设置 Mariadb 服务在开机时自动启动:

sudo systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
  1. 之后,通过在终端中执行如下命令加固mariadb的安全以及重置其root账号。
mysql_secure_installation
执行过程中,会进行交互式询问,全部选择"y"即可。 
Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
.....
  1. 在 Server1 上编辑配置文件

编辑以下文件:

cd /etc/mysql/conf.d/
sudo vim 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.100.181,192.168.100.182"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.100.181"
wsrep_node_name="node1"

,替换为 Server1 和 Server2 的 IP 地址。

同样,在第二个节点上进行配置,内容如下:

[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.100.181,192.168.100.182"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.100.182"
wsrep_node_name="node2"

修改主my.cnf文件

cd /etc/mysql
vim my.cnf

# 修改内容如下:
# server-id服务的唯一标识(主从之间都必须不同);
# log-bin启动二进制日志名称为mysql-bin
[mysqld]
server-id=1
log-bin=apollo-mysql-bin
#重启数据库
systemctl start mariadb

设置主从复制

在 Server2 上,使用以下命令设置从服务器的复制:

sudo mysql -u root -p
STOP ALL SLAVES;
CHANGE MASTER TO MASTER_HOST='', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='', MASTER_LOG_POS=;
START SLAVE;

替换为 Server1 的 IP 地址,replication_userpassword替换为你自己的用户名和密码。你可以使用以下命令在 Server1 上查看 Mariadb 的 binlog file 和 binlog position:

sudo mysql -u root -p -e "SHOW MASTER STATUS;"

现在,主服务器上的任何更改都将被自动复制到从服务器。

初始化Galera群集

在所有节点上的配置文件完成后,接下来我们初始化集群配置,操作步骤如下:

1、所有节点停止mariadb服务

systemctl stop mariadb

2、在第一个节点上,使用以下命令初始化MariaDB Galera集群:

galera_new_cluster

3、现在,使用以下命令检查集群的状态:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

首次执行,会提示输入root账号密码,之后你将会看到如下内容:

+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

以上同样的步骤在第二个

所有的节点完成以上操作后, Galera集群的初始化工作就已经完成,你可以进行下一步的操作了。

接下来,我们来验证复制是否正常工作。 1、在第一个节点上,使用以下命令连接到MariaDB:

mysql -u root -p

2、连接成功后,执行如下命令:

MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;

3、命令执行完成后,通过以下命令退出:

MariaDB [(none)]> exit;

下一步,我们在第二个数据库节点上执行如下命令登录数据库服务:

mysql -u root -p

登录上后,执行如下命令,显示数据库信息。

MariaDB [(none)]> show databases;

正常情况下,你将会看到我们在第一个数据库节点创建的db1和db2已经被复制到第二个节点上:

+--------------------+
| Database           |
+--------------------+
| db1                |
| db2                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)

这就是在 Ubuntu 22.04 上安装一主一从的 Mariadb 集群的步骤。

你可能感兴趣的:(mysql,linux,ubuntu)