centos上mysql 8.x - 主从复制

14 篇文章 0 订阅
4 篇文章 0 订阅

主从

// 重装mysql==========================================


stop:

systemctl stop mysqld

list:

yum list installed mysql*
或者
rpm -qa|grep -i mysql

remove:

rpm -e --nodeps mysql-community-client.x86_64
rpm -e --nodeps mysql-community-common.x86_64
rpm -e --nodeps mysql-community-libs.x86_64
rpm -e --nodeps mysql-community-libs-compat.x86_64
rpm -e --nodeps mysql-community-server.x86_64
rpm -e --nodeps mysql-community-client-plugins.x86_64

install:

rpm -ivh ./*.rpm

start:

systemctl enable mysqld
systemctl start mysqld

创建账号:

name=root
passwd=passwd123456

OLDPWD=`cat /var/log/mysqld.log |grep 'temporary password'|tail -1 |awk -F"host: " '{print $2}'`
mysql  --connect-expired-password -uroot -p"$OLDPWD" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwd123456';"
mysql -uroot -ppasswd123456 -e "CREATE USER '"$name"'@'%' IDENTIFIED WITH mysql_native_password BY '"$passwd"';GRANT ALL PRIVILEGES ON *.* TO '"$name"'@'%' WITH GRANT OPTION;"

创建表:

passwd=passwd123456
mysql -uroot -p$passwd -e "CREATE DATABASE data DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
mysql -uroot -p$passwd --default-character-set=utf8 data<  data.sql

主库:187
从库:188

mysql 8.x

= = =【主】=========================================================
1.登录master,创建从节点使用的账号并授权:

mysql> CREATE USER 'copy'@'192.168.1.188' IDENTIFIED WITH mysql_native_password BY 'passwd123456';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'192.168.1.188';

2.刷新权限: flush privileges;
3.查看状态:

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |      848 | media        |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

4.mysql结果格式化显示,末尾加 \G

mysql> SHOW MASTER STATUS\G;
*************************** 1. row ***************************
             File: binlog.000003
         Position: 64742621
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql>

= = =【从】==========================================================

1.设置主节点参数

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.187',
MASTER_USER='copy',
MASTER_PASSWORD='passwd123456',
MASTER_LOG_FILE='mysql-bin.000010',
MASTER_LOG_POS=848 ;
Query OK, 0 rows affected, 2 warnings (0.34 sec)

2.查看状态:show slave status \G
3.开启从节点:start slave;

4.查看serverid:show variables like ‘server_id’;
注意:serverid唯一


*重要:my.cnf

指定需要复制的库,可以配置多行以指定多个库
binlog-do-db=

导入数据库:
1.创建数据库:create database databaseName;
2.使用数据库:use databaseName;
3.导入: source ./databaseName.sql;

查看参数说明:
mysqld --verbose --help

二、备份数据,主从重做

1.修改主库端口,重启,防止新插入数据
2.查看主库Position File :

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000010 |      848 | media        |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

3.备份主库

mysqldump -u 用户名 -p -B 数据库名1 数据库名2 > 备份文件名.sql

4.推到从库服务器

scp mysql.bak.sql root@192.168.128.101:/tmp/

5.停止从库slave

mysql> stop slave;

6.修改从库为其他端口,重启,防止新插入数据
7.删除从库全部数据
8.导入mysql.bak.sql

mysql> source /tmp/mysql.bak.sql

9.重做主从(文件名和POS获取自之前的主库 SHOW MASTER STATUS;)

mysql> CHANGE MASTER TO
MASTER_HOST='192.168.1.187',
MASTER_USER='copy',
MASTER_PASSWORD='passwd123456',
MASTER_LOG_FILE='mysql-bin.000010',
MASTER_LOG_POS=848 ;
Query OK, 0 rows affected, 2 warnings (0.34 sec)

10.查看从库状态,见两个YES且库名正确即为正常

mysql> show slave status \G
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值