前提条件
- Centos7系统:192.168.6.220(master),192.168.6.221(slave) (安装Centos7和mysql在最后)
- mysql:mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz(安装Centos7和mysql在最后)
搭建环境之前一定要快照、一定要快照、一定要快照
修改master结点
修改my.cnf文件
### 要求各个服务器的ID必须不一样
server-id=1
### 开启bin log日志以及一些参数
log-bin=/var/log/mysql/mysql-bin
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
### 同步的数据库名称为dbname
#binlog-do-db=dbname
创建bin-log目录并且赋予权限
mkdir /var/log/mysql
chown mysql.mysql /var/log/mysql
确保在主服务器上 skip_networking
选项处于 OFF关闭状态, 这是默认值。如果是启用的,则从站无法与主站通信,并且复制失败。
创建一个专门用于复制数据的用户
###创建用户名为repl密码为123456的用户
CREATE USER 'repl'@'%' ;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' identified by '123456';
保证repl用户能正常访问数据
mysql -h127.0.0.1 -urepl -p
重启master上mysql服务
service mysqld restart
查看结点状态
show master status;
修改slave结点
修改my.cnf文件
[mysqld]
server-id=2
重新启动mysql服务
service mysqld restart
与master建立连接
mysql>CHANGE MASTER TO MASTER_HOST = '192.168.6.221',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 0;
mysql>START SLAVE;
查看当前结点的状态
show slave status;
参考
博客
哔哩哔哩
mysql主从复制实战详解_一点课堂(多岸学院)_哔哩哔哩_bilibili
博客:MYSQL同步故障:" SLAVE_SQL_RUNNING:NO" 两种解决办法
MySQL同步故障:" Slave_SQL_Running:No" 两种解决办法 - 沅来是澧 - 博客园
遇到的问题
如果master结点有数据单没开二进制文件,此时如何实现主从复制?
1)背备master数据库到slave数据库 2)开始master二进制文件 3)配置。。。
安装centos7
VMware 安装 Centos7 超详细过程 | 菜鸟教程
安装mysql(亲测)
Centos 离线安装 MySQL 详细步骤 | 郝继亮的笔记
mysql错误1130或者mysql运行远程访问
mysql -u root -p
use mysql;
//修改密码
update user set password=password("123456") where user = "root" and host = "localhost";
//修改远程登录
update user set host='%' where host='localhost' and user='root';
//刷新
flush privileges;
service mysqld stop
service mysqld start