MySQL主从复制配置

前提条件

  • 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关闭状态, 这是默认值。如果是启用的,则从站无法与主站通信,并且复制失败。

MySQL主从复制配置_第1张图片

 

创建一个专门用于复制数据的用户

###创建用户名为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;

MySQL主从复制配置_第2张图片

 

修改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主从复制配置_第3张图片

 

参考

博客

https://www.jianshu.com/p/faf0127f1cb2

哔哩哔哩

https://www.bilibili.com/video/BV1P4411a7pN?from=search&seid=15015291727822010695

博客:MYSQL同步故障:" SLAVE_SQL_RUNNING:NO" 两种解决办法

https://www.cnblogs.com/zhaoying/p/11737464.html

 

遇到的问题

如果master结点有数据单没开二进制文件,此时如何实现主从复制?

1)背备master数据库到slave数据库 2)开始master二进制文件 3)配置。。。

https://www.jianshu.com/p/faf0127f1cb2

安装centos7

https://www.runoob.com/w3cnote/vmware-install-centos7.html

安装mysql(亲测)

https://blog.iaiot.com/centos-install-mysql.html

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

 

你可能感兴趣的:(【MySQL】,mysql)