3-openEuler服务器部署指令:MySQL数据库集群的实现

104 阅读4分钟
  1. 基于openEuler 24.03 LTS,基于X86 CPU实现。
  2. 使用MySQL Community 8.4版本。

服务器信息:

共计使用4台VM。

序号虚拟机名称IP地址用途
1VM-Project-06-Task-0110.10.2.61MySQL Server(Master)、phpMyAdmin
2VM-Project-06-Task-0210.10.2.62MySQL Server(Slave)
VM-Project-06-Task-01:

虚拟机名称:VM-Project-06-Task-01-10.10.2.61
内存:1GB
CPU:1颗1核心
虚拟硬盘:20GB
网卡:1块,NAT
主机名:Project-06-Task-01
IP地址:10.10.2.61 /24
网关:10.10.2.254
DNS:10.10.2.254

VM-Project-06-Task-02

虚拟机名称:VM-Project-06-Task-02-10.10.2.62
内存:1GB
CPU:1颗1核心
虚拟硬盘:20GB
网卡:1块,NAT
主机名:Project-06-Task-02
IP地址:10.10.2.62 /24
网关:10.10.2.254
DNS:10.10.2.254


部署指令:

在Project-06-Task-01部署MySQL Server。

#从MySQL官方网站下载MySQL Yum Repository配置程序
wget https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
#运行并完成YUM Repository的配置
rpm -ivh mysql84-community-release-el9-1.noarch.rpm
#重新设置YUM的缓存
yum makecache
#通过YUM安装MySQL Community Server
yum install -y mysql-community-server

#启动mysqld服务,设置为开启自启动
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

#查看MySQL Community Server安装日志文件,查找root的初始密码
cat /var/log/mysqld.log | grep 'A temporary password is generated for root@'
查看下面的信息,找到root的默认密码。
2024-10-29T01:57:44.679282Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: yr<0g1G0?,uc

#设置MySQL的root密码,创建新账号user1,并授权。
mysql -uroot -p'{查找到的密码}'
#注意没有空格
#设置MySQL的root账户的密码
mysql> SET PASSWORD = 'openEuler@mysql#123';

#创建MySQL远程管理权限
mysql> CREATE USER 'teachUser'@'%' IDENTIFIED BY 'openEuler@mysql#123';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'teachUser'@'%' WITH GRANT OPTION;
mysql> flush privileges;
mysql> quit;

#配置防火墙,允许远程访问MySQL服务
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

在Project-06-Task-01部署MySQL Server。

配置方式与Project-06-Task-01相同。

配置Project-06-Task-01为数据库集群的主服务器

#配置MySQL
cp /etc/my.cnf /etc/my.cnf.bak
cat << EOF >> /etc/my.cnf
# 给主服务器设置一个唯一的server-id,用于标识数据库服务器
server-id=1
# 开启日志
log-bin=db-cluster-MySQL-bin
EOF
#重启mysqld服务
systemctl restart mysqld

#登录MySQL进行配置
mysql -uroot -p'openEuler@mysql#123'
#创建用于数据同步的账号
mysql> CREATE USER 'replication_user'@'%' IDENTIFIED BY 'openEuler@mysql#123';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
mysql> flush privileges;

#查看MySQL二进制日志信息
#MySQL 8.4:SHOW MASTER STATUS Statement (no longer supported)
mysql> SHOW BINARY LOG STATUS;
#记录数据库二进制日志信息,用于从服务器的配置。

配置Project-06-Task-02为数据库集群的从服务器

#配置MySQL
cp /etc/my.cnf /etc/my.cnf.bak
cat << EOF >> /etc/my.cnf
# 给主服务器设置一个唯一的server-id,用于标识数据库服务器
server-id=2
# 开启日志
log-bin
EOF
#重启mysqld服务
systemctl restart mysqld

#登录MySQL进行配置
mysql -uroot -p'openEuler@mysql#123'
#在从服务器上配置主服务器信息,配置信息自行修订
mysql> CHANGE REPLICATION SOURCE TO
    SOURCE_HOST='10.10.2.61',
    SOURCE_USER='replication_user',
    SOURCE_PASSWORD='openEuler@mysql#123',
    SOURCE_LOG_FILE='db-cluster-MySQL-bin.000001',
    SOURCE_LOG_POS=884;
#启动数据同步服务
mysql> start replica;
mysql> stop replica;
mysql> show replica status\G;

#如果同步服务存在登录访问错误,则运行下述命令更新密钥
mysql -u'replication_user' -p'openEuler@mysql#123' -h '10.10.2.61' -P 3306 --get-server-public-key
#故障分析文章:https://www.modb.pro/db/29919

在Project-06-Task-01服务器上部署phpMyAdmin

#安装Apache Http Server、php、相关工具软件等
yum install -y tar
yum install -y httpd
yum install -y php php-mysqlnd php-mbstring php-zip php-gd php-json php-curl

#获取phpMyAdmin程序
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz
tar -zxvf phpMyAdmin-5.2.1-all-languages.tar.gz -C /var/www/
mv /var/www/phpMyAdmin-5.2.1-all-languages/ /var/www/phpMyAdmin/

#设置phpMyAdmin权限
chown apache:apache -R /var/www/phpMyAdmin
chmod 755 -R /var/www/phpMyAdmin

#生成密钥
php -r 'echo bin2hex(random_bytes(32)) . PHP_EOL;'

#对phpMyAdmin进行配置
cp /var/www/phpMyAdmin/config.sample.inc.php /var/www/phpMyAdmin/config.inc.php
vi /var/www/phpMyAdmin/config.inc.php
#修改下述信息
$cfg['blowfish_secret'] = sodium_hex2bin('a33dff8f4f966650c5034c032c4edca4047d8fad9c2424ce5422c669ff907fba'); 

#通过Apache Http Server发布phpMyAdmin
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
vi /etc/httpd/conf/httpd.conf

#启动Apache Http Server并配置
systemctl start httpd
systemctl enable httpd
systemctl status httpd

#配置防火墙和SELinux,提供phpMyAdmin服务
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
setenforce 0

使用phpMyAdmin管理MySQL Server。

在本地主机,使用浏览器访问:http://10.10.2.61

phpMyAdmin本身不存储账号,请使用MySQL Server账号登录。

使用MySQL Workbench管理MySQL Server。

在本地主机,安装MySQL Workbench。

使用MySQL Workbench管理MySQL Server。

MySQL Workbench官网:dev.mysql.com/downloads/w…

使用Navicat Monitor监控MySQL Server。

在本地主机,安装Navicat Monitor。

使用Navicat Monitor监控MySQL Server。

Navicat Monitor官网:www.navicat.com.cn/download/na…