MySql 双主备份

MySql安装与基本配置 双主备份

环境清理

1. 卸载centos 7自带的mariadb

查看

rpm -qa|grep mariadb

卸载

 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

注: ’mariadb-libs-5.5.56-2.el7.x86_64‘ 为本地版本

2.卸载自带的mysql

查看

rpm -qa | grep mysql

卸载

    rpm -e --nodeps mysql57-community-release-el7-8.noarch

安装

1.更改下载源

 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
 # 二选一 两个源
 wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

2.安装源

yum -y  localinstall mysql57-community-release-el7-8.noarch.rpm

注:如果报-bash: wget: command not found,则表明没有安装wget,需要安装,安装命令如下

yum -y install wget

3.查看mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

4.进入相关文件查看

cd /etc/yum.repos.d/

5.安装

yum -y install mysql-community-server

基础命令

1.启动mysql服务

systemctl start mysqld
# 二选一
systemctl start mysqld.service

2.检测启动状态

systemctl status mysqld.service

3.设置开机自启

systemctl enable mysqld
systemctl daemon-reload

4.关闭防火墙

systemctl stop mysqld.service

注:不关闭远程访问不了

5.重启服务

systemctl restart mysqld.service

修改root密码

1.修改root本地登录密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。

grep 'temporary password' /var/log/mysqld.log

返回结果:2018-08-17T12:49:33.835763Z 1 [Note] A temporary password is generated for root@localhost: <‘临时密码’>

2.登录mysql

使用临时密码登录,用该密码登录到服务端后,必须马上修改密码,不然会报错误

mysql -u root -p

3.修改密码

必须得先登录进mysql才行

 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xy12.top123456';
 # 二选一
 set password for 'root'@'localhost'=password('Xy12.top123456');

注:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

添加用户

1.登录mysql

mysql -u root -p

2.添加用户

GRANT ALL PRIVILEGES ON *.* TO 'xiaoyang'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;

注: xiaoyang是用户名, root123是密码

MySql双主备份

双主备份也就是两台服务器进行相互备份,一台服务器中数据改变另一台也跟着改变

是主从备份的变体

A机配置

1.修改A机配置文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
server-id=1  # 设置服务器编号必须唯一
auto_increment_offset=1
auto_increment_increment=2
 
gtid_mode=on
enforce_gtid_consistency=on
log-bin=mysql-bin
 
# slow query
slow_query_log=on
slow_query_log_file=/var/lib/mysql/log/slow-query.log
 
symbolic-links=0
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

2.在A机上创建一个用户,用于B机访问

create user B@'192.168.0.102' identified by '123123'; 
grant replication slave on *.* to B@'192.168.0.102';

注:创建用户名为B访问ip为192.168.0.102的用户 密码为123123, 并给这个用户设置相应权限

B机配置

1.修改B机配置文件

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock server-id=2  # 设置服务器编号必须唯一auto_increment_offset=2auto_increment_increment=2 gtid_mode=onenforce_gtid_consistency=onlog-bin=mysql-bin # slow queryslow_query_log=onslow_query_log_file=/var/lib/mysql/log/slow-query.log symbolic-links=0 log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

2.在B机上创建一个用户,用于A机访问

create user A@'192.168.0.103' identified by '123456'; grant replication slave on *.* to A@'192.168.0.103';

注:创建用户名为A访问ip为192.168.0.103的用户 密码为123123, 并给这个用户设置相应权限

主从配置

如果只配置一台就变成了主从备份了

B机

1.在B机上进行,A主B从配置
change master to master_host='192.168.0.103', master_user='B', master_password='123123', master_port=3306, master_auto_position=1;

注:master_host为A机ip

2.启动主从
# 开启start slave;# 查看状态show slave status\G;

A机

1.在A机上进行,B主A从配置
change master to master_host='192.168.0.102', master_user='A', master_password='123456', master_port=3306, master_auto_position=1;

注:master_host为B机ip

2.启动主从
# 开启start slave;# 查看状态show slave status\G;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
双主复制是一种在Docker环境中配置MySQL主从复制的方式。它允许两个MySQL实例相互复制数据并保持同步,从而提高数据的可用性和容错性。下面是配置双主复制的一般步骤: 1. 创建两个MySQL容器,分别作为主库1和主库2。你可以使用Docker Compose来方便地定义和管理容器。 2. 在主库1上启用二进制日志(binary logging)。你可以通过在MySQL配置文件中设置`log_bin`参数来实现。 3. 在主库1上创建一个用于复制的用户,并为其授予适当的权限。例如,你可以使用以下命令在MySQL控制台中创建用户: ``` CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; ``` 4. 在主库1上锁定表,并记录当前的二进制日志文件名和位置。可以使用以下命令在MySQL控制台中执行: ``` FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ``` 5. 备份主库1的数据并将其还原到主库2。你可以使用`mysqldump`命令进行备份和还原。 6. 在主库2上启动MySQL,并确保它具有与主库1相同的配置。 7. 在主库2上配置复制连接到主库1。你可以使用以下命令在MySQL控制台中执行: ``` CHANGE MASTER TO MASTER_HOST='master1_host', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='filename', MASTER_LOG_POS=position; ``` 请将`master1_host`替换为主库1的主机名或IP地址,`filename`和`position`替换为在步骤4中记录的二进制日志文件名和位置。 8. 启动主库2的复制进程。在MySQL控制台中执行以下命令: ``` START SLAVE; ``` 9. 检查主库2的复制状态。可以使用以下命令在MySQL控制台中执行: ``` SHOW SLAVE STATUS\G ``` 确保复制状态显示为正常。 10. 重复步骤4-9,在主库2上进行表锁定、备份和还原,并在主库1上配置复制连接到主库2。这样,你就建立了一个双向的主从复制。 请注意,以上步骤只是一个简单的示例,实际配置可能会因环境和需求而有所不同。在配置双主复制时,还需要考虑数据同步、冲突解决和监控等方面的问题。同时,确保在进行任何配置更改之前备份你的数据是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值