mysql 主从架构搭建
创建用户:
create user '用户'@'主机' identified by '123'
授权:
grant 权限 on 级别(全局、库级别、表级别、列级别) to '用户'@'主机' identified by '密码';
revoke
flush privileges
mysql -u用户 -p密码 -h主机 -P端口
在主(Master主机上的操作)
1.关闭防火墙
service iptables stop
setenforce 0
2.安装MySQL客户端和服务端
yum -y install mysql mysql-server
3.启动MySQL服务
service mysqld start
chkconfig mysqld on
4.更改配置文件,开启二进制日志
vim /etc/my.cnf
在mysqld下增加内容:
server-id=1
log-bin=mysql-bin
保存退出后重启MySQL
service mysqld restart
5.登录到本地mysql上,给从(slave)主机授权 同步日志的权限
grant replication slave on *.* to 'tom'@'192.168.189.%' identified by '123';
flush privileges;
6.查看二进制日志和位置
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 331 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
主(master)配置完毕
从(slave)主机的操作
1.关闭防火墙
service iptables stop
setenforce 0
2.安装MySQL客户端和服务端
yum -y install mysql mysql-server
3.启动MySQL服务
service mysqld start
chkconfig mysqld on
4.更改配置文件,开启中继日志
vim /etc/my.cnf
在mysqld下增加内容:
server-id=2
relay-log=mysql-relay
保存退出后重启MySQL
service mysqld restart
登录本地mysql上,执行同步master二进制日志操作
mysql> stop slave; \\停止slave同步
mysql> change master to
-> master_host='192.168.189.120', \\master主机的ip地址
-> master_user='tom', \\登录master主机的账号
-> master_password='123', \\登录的密码
-> master_log_file='mysql-bin.000001', \\二进制日志文件
-> master_log_pos=331;
mysql> start slave; \\开启slave同步
show slave status \G; 查看状态
注意以下两个线程的状态都为Yes,说明配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试
在主上创建一个数据库,在从查看能够成功同步既是成功!
主从同步出现一下错误:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
解决方法:
导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:
1、网络不通
2、密码不对
3、pos不对