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 IP Address>,<Server2 IP Address>替换为 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='<Server1 IP Address>', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='<Server1 MariaDB binlog file>', MASTER_LOG_POS=<Server1 MariaDB binlog position>;
START SLAVE;

<Server1 IP Address>替换为 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 集群的步骤。

### Ubuntu 22.04安装 MySQL 5.7 或其他特定版本 需要注意的是,官方仓库通常提供最新的稳定版 MySQL 版本,在撰写本文时为 MySQL 8.0。对于希望安装旧版本如 MySQL 5.8 的情况,实际上并不存在名为 "MySQL 5.8" 的正式发布版本;可能是询问者意指 MySQL 5.7 或更高系列中的某个具体次级版本。 为了满足需求,以下是针对 Ubuntu 22.04 安装 MySQL 5.7 的指导: #### 准备工作 建议先切换至 root 用户以便执行后续操作[^4]: ```bash sudo -i ``` #### 更新软件包索引 确保本地数据库是最新的: ```bash sudo apt update ``` #### 添加 MySQL APT 存储库 由于默认源不包含 MySQL 5.7,需添加额外的存储库来获取该版本。可以从 MySQL 官方网站下载适用于 Debian/Ubuntu.deb 包,并按照说明配置: 1. 访问 [MySQL 下载页面](https://dev.mysql.com/downloads/repo/apt/) 2. 选择适合的操作系统(Debian/Ubuntu) 3. 下载对应的 `.deb` 文件 4. 使用 `dpkg` 命令安装此文件以设置自定义 APT 源: ```bash dpkg -i mysql-apt-config_*.deb ``` 完成上述步骤后再次运行 `apt-get update` 来同步新加入的资源库信息。 #### 查询可选版本号 通过搜索命令查看有哪些 MySQL Server 可供选择: ```bash apt-cache policy mysql-server ``` 这步骤有助于确认是否能发现期望的具体版本标签,比如 `mysql-server-5.7`. #### 执行安装过程 旦确定了确切的目标版本,则可以通过如下方式启动安装流程: ```bash sudo apt install -y mysql-server=5.7.* ``` 请注意这里的星号(*)代表任意修订级别,实际应用中应替换为具体的子版本编号。 #### 验证安装成果 最后验证服务状态以及登录测试: ```bash systemctl status mysql.service mysql -u root -p ``` 以上就是在 Ubuntu 22.04 平台上部署 MySQL 5.7 的基本方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值