男儿欲遂平生志,五经勤向窗前读。这篇文章主要讲述maradb 双主配置相关的知识,希望能为你提供帮助。
[TOC]
一、服务器环境
IP | 用途 | 服务器版本 | 软件版本 |
10.224.216.121 | master A | centos 7.4 | mariadb 10.4.11 |
10.224.216.122 | master B | centos 7.4 | mariadb 10.4.11 |
10.224.216.123 | VIP |
sed -i $ a export PATH=/data/zabbix/mysql/bin:\\$PATH /etc/profile
source /etc/profile
2、检查mysql
$ mysql -V
mysqlVer 15.1 Distrib 10.4.11-MariaDB, for Linux (x86_64) using readline 5.1
3、配置启动文件1、配置init启动
cp /data/zabbix/mysql/support-files/mysql.server /etc/init.d/mysqld
- 启动测试
2、配置systemctl启动 到官网上把systemd文件复制下来
cat > /etc/systemd/system/mysqld.service < < EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/zabbix/mysql/bin/mysqld_safe --defaults-file=/data/zabbix/mysql/etc/my.cnf
LimitNOFILE=5000
EOF
- 测试启动
四、master A 配置2、配置my.cnf文件
cat > /data/zabbix/mysql/etc/my.cnf < < EOF
[mysqld]
port=3366
user=mysql
server_id=20
binlog_format=ROW
slow_query_log=ON
relay_log_purge=OFF
log_slave_updates=ON
skip_name_resolve=ON
innodb_file_per_table=ON
table_open_cache=64
key_buffer_size=16M
max_allowed_packet=1M
net_buffer_length=8K
sort_buffer_size=512K
read_buffer_size=256K
read_rnd_buffer_size=512K
character-set-server=utf8mb4
init_connect=SET NAMES utf8mb4
collation-server=utf8mb4_general_ci
basedir=/data/zabbix/mysql
datadir=/data/zabbix/mysql/data
log_bin=/data/zabbix/mysql/logs/bin_log
socket=/data/zabbix/mysql/tmp/mysql.sock
log_error=/data/zabbix/mysql/logs/error.log
relay_log=/data/zabbix/mysql/logs/mysql_relaylog
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
relay_log_index=/data/zabbix/mysql/logs/mysql_relaylog
[mysql]
default-character-set = utf8mb4
socket=/data/zabbix/mysql/tmp/mysql.sock
[client]
port=3366
default-character-set = utf8mb4
socket=/data/zabbix/mysql/tmp/mysql.sock
EOF
3、启动mariadb
systemctl start mysqld
给root创建pwd
mysqladmin -uroot password Nokia!23+
4、创建zabbix账号并授权
mysql -uroot -pNokia!23+ -e "grant replication slave on *.* to zabbix@10.224.216.% identified by Nokia!23=; flush privileges; "
5、查看zabbix账号
mysql -uroot -pNokia!23+ -e "select User,Host,authentication_string from mysql.user where User=zabbix; " -S /data/zabbix/mysql/tmp/mysql.sock
+------+-------------+-------------------------------------------+
| User | Host| authentication_string|
+------+-------------+-------------------------------------------+
| bak| 10.224.216.0.% | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-------------+-------------------------------------------+
6、数据库备份
如果数据库有数据就备份数据库,然后到另一台上去还原库
mysqldump -uroot -pNokia!23+ -A --master-data=https://www.songbingjia.com/android/2 --single-transaction -R -E --triggers -S /data/zabbix/mysql/tmp/mysql.sock > /tmp/master.sql
7、拷贝备份数据A到B
scp /tmp/master.sql root@10.224.216.122:/tmp/
- --master-data选项的作用就是将二进制的信息写入到输出文件中,在这里是写入到备份的sql文件中。
- --master-data选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。
- --single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁表。
- --triggers导出触发器。该选项默认启用,用--skip-triggers禁用它。
rm -rf /data/zabbix/mysql/data/*
3、配置mysql
cat > /data/zabbix/mysql/etc/my.cnf < < EOF
[mysqld]
port=3366
user=mysql
server_id=50
binlog_format=ROW
slow_query_log=ON
relay_log_purge=OFF
log_slave_updates=ON
skip_name_resolve=ON
innodb_file_per_table=ON
table_open_cache=64
key_buffer_size=16M
max_allowed_packet=1M
net_buffer_length=8K
sort_buffer_size=512K
read_buffer_size=256K
read_rnd_buffer_size=512K
character-set-server=utf8mb4
init_connect=SET NAMES utf8mb4
collation-server=utf8mb4_general_ci
basedir=/data/zabbix/mysql
datadir=/data/zabbix/mysql/data
log_bin=/data/zabbix/mysql/logs/bin_log
socket=/data/zabbix/mysql/tmp/mysql.sock
log_error=/data/zabbix/mysql/logs/error.log
relay_log=/data/zabbix/mysql/logs/mysql_relaylog
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
relay_log_index=/data/zabbix/mysql/logs/mysql_relaylog
[mysql]
default-character-set = utf8mb4
socket=/data/zabbix/mysql/tmp/mysql.sock
[client]
port=3366
default-character-set = utf8mb4
socket=/data/zabbix/mysql/tmp/mysql.sock
EOF
4、初始化数据库
/data/zabbix/mysql/scripts/mysql_install_db --defaults-file=/data/zabbix/mysql/etc/my.cnf
5、启动数据库
/data/zabbix/mysql/bin/mysqld_safe --defaults-file=/data/zabbix/mysql/etc/my.cnf &
6、创建数据库pwd
/data/zabbix/mysql/bin/mysqladmin -urootpassword Nokia!23+ -S /data/zabbix/mysql/tmp/mysql.sock
7、导入数据库
/data/zabbix/mysql/bin/mysql -uroot-pNokia!23+ -S /data/zabbix/mysql/tmp/mysql.sock -e "set sql_log_bin=0; source /tmp/master.sql; "
8、slave设置导入二进制日志的相关配置1、查看导入sql
/data/zabbix/mysql/bin/mysql -uroot-pNokia!23+ -S /data/zabbix/mysql/tmp/mysql.sock
mysql> help change master to;
# 找到导入的sql
CHANGE MASTER TO
MASTER_HOST=master2.example.com,
MASTER_USER=replication,
MASTER_PASSWORD=password,
MASTER_PORT=3366,
MASTER_LOG_FILE=master2-bin.001,
MASTER_LOG_POS=4,
MASTER_CONNECT_RETRY=10;
2、查找从主库导入二进制日志的位置
mariadb(mysql5.7)是在22行,其他版本的数据库,可以按照关键字来查找,
- 找到这个记录备份时刻的数据记录,就可以做备份了
- 设置master主机的同步信息
推荐阅读
- 关于为了吃瓜通宵7天写了一个网站却没钱买域名这件小事
- #yyds干货盘点#mysql索引_效率测试(包含测试sql脚本300万条数据)
- 使用VMware安装CentOS 6.4#yyds干货盘点#
- #yyds干货盘点#Linux基本命令练习
- 了解下WSDL 端口
- 通过模板名称查询WordPress中的页面
- 从WordPress自定义控件获取值的正确方法
- 解析错误(语法错误,文件结尾意外,但没有错误[关闭])
- 在WordPress中设置偏移量时分页不起作用