在搭建jump时记录和用于后期查询。可参考使用。
一.Mariadb 10.5安装
配置安装源
vi /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos7-amd64 gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1
2.yum安装
yum clean all yum -y install MariaDB-server systemctl enable mariadb systemctl start mariadb
3.创建数据库
进入数据库 mysql -uroot 创建数据库 create database jumpserver default charset 'utf8'; 创建用户和密码 create user 'jumpserver'@'%' identified by '123456'; 授权 grant all on jumpserver.* to 'jumpserver'@'%'; flush privileges; use jumpserver; 导入数据库 source /opt/jumpserver.sql; 退出 exit;
二.实现mysql双主复制
环境centos 7.8
角色 | ip | 端口 | 版本 |
---|---|---|---|
master1 | 192.168.0.121 | 3306 | Mariadb 10.5 |
master2 | 192.168.0.122 | 3306 | Mariadb 10.5 |
1.mysql 安装见如上安装步骤,两台安装同样的配置。
2.master1配置
(1).vi /etc/my.cnf文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 开启二进制归档日志
log-bin=mysql-bin
# 定义服务器id,必须唯一
server-id=1
# 开启从库日志更新
log_slave_updates=1
# 需要同步的数据库名,如果有多个,则重复此参数,每个数据库一行(请根据需要配置)
#binlog-do-db=test
# 不同步的 mysql 数据库,同上 (请根据需要配置)
#binlog-ignore-db=mysql
#binlog-ignore-db=performance_schema
#binlog-ignore-db=information_schema
#binlog-ignore-db=sys
(2).创建同步账号
CREATE USER 'tb1'@'192.168.0.122' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'tbl'@'192.168.0.122';
(3).重启服务
systemctl restart mariadb
3.master2配置
(1).vi /etc/my.cnf文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 开启二进制归档日志
log-bin=mysql-bin
# 定义服务器id,必须唯一
server-id=2
# 开启从库日志更新
log_slave_updates=1
#read_only=1
# 需要同步的数据库名,如果有多个,则重复此参数,每个数据库一行(请根据需要配置)
#binlog-do-db=test
# 不同步的 mysql 数据库,同上 (请根据需要配置)
#binlog-ignore-db=mysql
#binlog-ignore-db=performance_schema
#binlog-ignore-db=information_schema
#binlog-ignore-db=sys
(2).创建同步账号
CREATE USER 'tb2'@'192.168.0.121' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'tb2'@'192.168.0.121';
(3).重启服务
systemctl restart mariadb
4.开启复制
(1).分别在master1.和master2中执行
-- 查看master状态,记录二进制日志文件编号和位置
SHOW MASTER STATUS;-- 用于停止io线程
STOP SLAVE IO_THREAD FOR CHANNEL '';-- 设置作为从库到主库读取的信息-- 在master1上执行的信息来自于master2上的show master status信息,同理master2也一样
CHANGE MASTER TO
MASTER_HOST='192.168.0.122', -- master2的 ip
MASTER_USER='tbl', -- master2上设置的同步用户
MASTER_PASSWORD='123456', -- master2上设置同步用户的密码
MASTER_LOG_FILE='mysql-bin.000003', -- master2的日志文件
MASTER_LOG_POS=155; -- master2 的日志位置
-- 查看系统sql_mode
select @@sql_mode;
-- 开启主从复制
start slave;
-- 查看从库状态
show slave status \G;
-- 停止主从复制;
STOP SLAVE;
(2).验证是否成功
在start slave后,执行show slave status查看下面是否为yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注意:配置完记得防火墙放行3306端口,否则无法同步。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload