当前位置:   article > 正文

mysql8.0.36主从复制(读写分离)配置教程_mysql主从复制命令

mysql主从复制命令

1、关闭防火墙
 

使用命令行关闭防火墙

Ubuntu系统中,可以使用以下命令关闭防火墙:

sudo ufw disable

执行该命令后,系统会提示是否要关闭防火墙,确认后即可关闭防火墙。

查看防火墙状态

使用以下命令可以查看防火墙当前的状态:

sudo ufw status

如果防火墙已经关闭,则会显示如下信息:

Status: inactive

如果防火墙处于开启状态,则会显示如下信息:

Status: active

当前演示IP:

主库IP:192.168.91.152

从库IP:192.168.91.153

2、配置主库(192.168.91.152)

修改配置文件

vim /etc/my.cnf

 或

vim /etc/mysql/my.cnf

  1. [mysqld]
  2. #id要确保在局域网环境里是唯一的
  3. server-id=1
  4. #1代表只读,0代表可读写
  5. read-only=0
  6. #忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
  7. #lbinlog-ignore-db=mysql
  8. #指定同步的数据库,如需要请把以下的#注释符号删掉即可
  9. #binlog-do-db=db_001

修改后,重启mysql服务

service mysqld restart

service mysql restart

进入mysql:

mysql -u root -p

创建用户:

  1. -- 创建用户并设置密码
  2. CREATE USER 'test123'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
  3. -- 赋予用户全部权限
  4. GRANT ALL PRIVILEGES ON *.* TO 'test123'@'%';
  5. -- 刷新权限
  6. FLUSH PRIVILEGES;

 显示当前主服务器(Master)二进制日志的状态信息

show master status;

记录一下File值和Position值

File值:binlog.000006

Position值:157

3、配置从库(192.168.91.153)

修改配置文件

vim /etc/my.cnf

 或

vim /etc/mysql/my.cnf
  1. [mysqld]
  2. #id要确保在局域网环境里是唯一的
  3. server-id=2
  4. #1代表只读,0代表可读写
  5. read-only=1
  6. #忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
  7. #lbinlog-ignore-db=mysql
  8. #指定同步的数据库,如需要请把以下的#注释符号删掉即可
  9. #binlog-do-db=db_001

 修改后,重启mysql服务

service mysqld restart

service mysql restart

 进入mysql:

mysql -u root -p

修改复制源信息,指定新的主服务器

 mysql命令行输入:

  1. CHANGE REPLICATION SOURCE TO
  2. SOURCE_HOST='192.168.91.152',
  3. SOURCE_USER='test123',
  4. SOURCE_PASSWORD='Root@123456',
  5. SOURCE_LOG_FILE='binlog.000006',
  6. SOURCE_LOG_POS=157;

 

-- 启动主从复制

START REPLICA;

-- 显示从库的状态信息

SHOW SLAVE STATUS \G;

成功了

4、开始测试

分别在主库、从库查看所有数据库列表:

SHOW DATABASES;

主库:

从库:

在主库执行以下SQL语句:

  1. -- 创建数据库 db_001
  2. CREATE DATABASE IF NOT EXISTS db_001 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  3. -- 切换到数据库 db_001
  4. USE db_001;
  5. -- 创建表 example_table
  6. CREATE TABLE IF NOT EXISTS example_table (
  7. id INT AUTO_INCREMENT PRIMARY KEY, -- 主键,自增长整数类型
  8. name VARCHAR(50) NOT NULL COMMENT '姓名', -- 姓名,最大长度为50的字符串,不允许为空
  9. age INT COMMENT '年龄', -- 年龄,整数类型
  10. email VARCHAR(100) COMMENT '电子邮件' -- 电子邮件,最大长度为100的字符串
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  12. -- 插入数据
  13. INSERT INTO example_table (name, age, email) VALUES
  14. ('张三', 25, 'zhangsan@example.com'),
  15. ('李四', 30, 'lisi@example.com'),
  16. ('王五', 22, 'wangwu@example.com');

分别在主库、从库查看所有数据库列表:

SHOW DATABASES;

主库:

从库:

可以看到,从库和主库同步了

常见问题:

问题1:Slave_IO_Running: No

我是直接克隆的虚拟机,主库和从库的uuid一致了,所以需要修改一下

搜索auto.cnf文件

find / -iname "auto.cnf"

 找到:/var/lib/mysql/auto.cnf

vim /var/lib/mysql/auto.cnf

 修改UUID,要保证唯一性

  • 将两台机器的UUID改成不一样就行

 修改后,重启mysql服务

service mysqld restart

service mysql restart

进入mysql

mysql -u root -p

-- 启动主从复制

start replica;

 -- 显示从库的状态信息

SHOW SLAVE STATUS \G;

 成功了

问题2:ERROR 3021 (HY000): This operation cannot be performed with a running replica io thread; run STOP REPLICA IO_THREAD FOR CHANNEL '' first.

原因:

从库已经配置过,需要先停止,然后重置一下

停止:

stop replica;

重置:

reset replica;

重新设置:

  1. CHANGE REPLICATION SOURCE TO
  2. SOURCE_HOST='192.168.91.152',
  3. SOURCE_USER='test123',
  4. SOURCE_PASSWORD='Root@123456',
  5. SOURCE_LOG_FILE='binlog.000006',
  6. SOURCE_LOG_POS=157;

-- 启动

START REPLICA;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/486921
推荐阅读
相关标签
  

闽ICP备14008679号