- 基于openEuler 24.03 LTS,基于X86 CPU实现。
- 使用MySQL Community 8.4版本。
服务器信息:
共计使用4台VM。
序号 | 虚拟机名称 | IP地址 | 用途 |
---|---|---|---|
1 | VM-Project-06-Task-01 | 10.10.2.61 | MySQL Server(Master)、phpMyAdmin |
2 | VM-Project-06-Task-02 | 10.10.2.62 | MySQL 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…