赞
踩
在Ubuntu系统中,可以使用以下命令关闭防火墙:
sudo ufw disable
执行该命令后,系统会提示是否要关闭防火墙,确认后即可关闭防火墙。
使用以下命令可以查看防火墙当前的状态:
sudo ufw status
如果防火墙已经关闭,则会显示如下信息:
Status: inactive
如果防火墙处于开启状态,则会显示如下信息:
Status: active
当前演示IP:
主库IP:192.168.91.152
从库IP:192.168.91.153
修改配置文件
vim /etc/my.cnf
或
vim /etc/mysql/my.cnf
- [mysqld]
- #id要确保在局域网环境里是唯一的
- server-id=1
- #1代表只读,0代表可读写
- read-only=0
- #忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
- #lbinlog-ignore-db=mysql
- #指定同步的数据库,如需要请把以下的#注释符号删掉即可
- #binlog-do-db=db_001
修改后,重启mysql服务
service mysqld restart
或
service mysql restart
进入mysql:
mysql -u root -p
创建用户:
- -- 创建用户并设置密码
- CREATE USER 'test123'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
-
- -- 赋予用户全部权限
- GRANT ALL PRIVILEGES ON *.* TO 'test123'@'%';
-
- -- 刷新权限
- FLUSH PRIVILEGES;
显示当前主服务器(Master)二进制日志的状态信息
show master status;
记录一下File值和Position值
File值:binlog.000006
Position值:157
修改配置文件
vim /etc/my.cnf
或
vim /etc/mysql/my.cnf
- [mysqld]
- #id要确保在局域网环境里是唯一的
- server-id=2
- #1代表只读,0代表可读写
- read-only=1
- #忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
- #lbinlog-ignore-db=mysql
- #指定同步的数据库,如需要请把以下的#注释符号删掉即可
- #binlog-do-db=db_001
修改后,重启mysql服务
service mysqld restart
或
service mysql restart
进入mysql:
mysql -u root -p
修改复制源信息,指定新的主服务器
mysql命令行输入:
- CHANGE REPLICATION SOURCE TO
- SOURCE_HOST='192.168.91.152',
- SOURCE_USER='test123',
- SOURCE_PASSWORD='Root@123456',
- SOURCE_LOG_FILE='binlog.000006',
- SOURCE_LOG_POS=157;
-- 启动主从复制
START REPLICA;
-- 显示从库的状态信息
SHOW SLAVE STATUS \G;
成功了
分别在主库、从库查看所有数据库列表:
SHOW DATABASES;
主库:
从库:
在主库执行以下SQL语句:
- -- 创建数据库 db_001
- CREATE DATABASE IF NOT EXISTS db_001 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
- -- 切换到数据库 db_001
- USE db_001;
-
- -- 创建表 example_table
- CREATE TABLE IF NOT EXISTS example_table (
- id INT AUTO_INCREMENT PRIMARY KEY, -- 主键,自增长整数类型
- name VARCHAR(50) NOT NULL COMMENT '姓名', -- 姓名,最大长度为50的字符串,不允许为空
- age INT COMMENT '年龄', -- 年龄,整数类型
- email VARCHAR(100) COMMENT '电子邮件' -- 电子邮件,最大长度为100的字符串
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
- -- 插入数据
- INSERT INTO example_table (name, age, email) VALUES
- ('张三', 25, 'zhangsan@example.com'),
- ('李四', 30, 'lisi@example.com'),
- ('王五', 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,要保证唯一性
修改后,重启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;
重新设置:
- CHANGE REPLICATION SOURCE TO
- SOURCE_HOST='192.168.91.152',
- SOURCE_USER='test123',
- SOURCE_PASSWORD='Root@123456',
- SOURCE_LOG_FILE='binlog.000006',
- SOURCE_LOG_POS=157;
-- 启动
START REPLICA;
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。