锐捷网络技能大赛-云平台部分-CentOS部分12-[Mariadb进阶-主从]
2022年全国职业技能大赛网络系统管理赛项相较2021年再次做出改动,Linux部分从之前的Debian又换回了CentOS,不过相应增加了UOS国产操作系统。
再怎么变比赛的东西也就那么多,希望大家都能勇于动手尝试,多多摸索,愿大家都能取得一个理想的成绩!
交流共享资料群号:926132419
2019年C卷
配置mariadb服务,修改mariadb配置文件,实现以下需求:
- 服务仅监听在192.168.1XX.33的IP地址上
- 关闭数据库域名解析功能
- innodb开启独立表空间模式。
- 数据库存储位置为/data/database
- wordpress数据库授权wordpress用户能够通过192.168.1XX.%主机执行所有操作。
- 开启二进制日志,日志名为mysql-bin
- 设置server_id为1
- serverA为主,serverB为从的主从数据库集群架构,复制账号为slave,用于提高数据库的安全性。
# 关闭防火墙和SELINUX
# 对于上面8个题目配置分析如下
# mariadb配置文件和mysql的不同
# mariadb的配置文件有my.cnf和my.cnf.d下面的三个文件
# my.cnf.d下面的配置只是分开了my.cnf的内容其他并无影响
# 下面的配置将在my.cnf中全部配置 不单独写开
vim /etc/my.cnf
[mysqld]
# 前三问
bind-address=192.168.1XX.33
skip_name_resolve=ON
innodb_file_per_table=ON
# 第四问
mkdir -pv /data/database
chmod 777 /data/database
cp -rp /var/lib/mysql/* /data/database
vim /etc/my.cnf
[mysqld]
datadir=/data/database
socket=/data/database/mysql.sock
# 如果文件中没有[client],需要手动加上
# 也可以自己进入my.cnf.d找到对应的地方修改
[client]
socket=/data/database/mysql.sock
# 修改 /data/mysql 目录的拥有者
# chown -R mysql:mysql /data/database/mysql
systemctl restart mariadb.service
# 如果启动失败继续操作
# 查看新建目录与/var/lib/mysql两者的安全信息
ls -Z
# 修改新目录的 security context信息
# semanage fcontext -a -t mysqld_db_t "/data/database(/.*)?"
# 恢复目录的 security context信息
# restorecon -R -v /data/database
systemctl restart mariadb.service
# 第五问
# 进入数据库
mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '123456';
GRANT ALL ON wordpress.* to wordpress@'192.168.1XX.%' IDENTIFIED BY '123456';
FLUSH privileges;
systemctl restart mariadb.service
# 第六-八问
# 主服务器
vim /etc/my.cnf
[mysqld]
server-id=1 # 主数据库的id
log-bin=mysql-bin # 日志路径,作用是从数据库是根据这个日志来复制主数据库的数据的
mysql -u root -p
# 授权远程用户
grant replication slave on *.* to 'slave'@'192.168.1XX.33' identified by '123456';
flush privileges;
# 重启mariadb
systemctl restart mariadb.service
# 主服务器的数据库上查询主服务状态
mysql -u root -p
SHOW MASTER STATUS;
# 从服务器
vim /etc/my.cnf
[mysqld]
server-id=2 #这个id必须不能和主数据库相同
read-only=on #设置该数据库是只读状态
relay-log=relay-bin #日志
systemctl restart mariadb.service
# 从服务器的数据库
mysql -u root -p
change master to master_host='192.168.1XX.22',master_user='slave',master_password='123456', master_log_file='master-bin.000005',master_log_pos=882;
# 启动slave同步
START SLAVE;
#slave服务器上查看slave同步的状态
#不要加';'
show slave status\G
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.110.22
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 476
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 529
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 476
Relay_Log_Space: 817
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
# Slave_IO_Running和Slave_SQL_Running是否都为yes
# 一定要全部为yes 否则就是你配置错了 再重新配置一遍从数据库
#远程登陆
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';