标签:art 成功 执行 用户名 无法连接 nec 记录 code 改变
一、准备环境:
主(Master)机IP: 192.168.0.83
从(Slave) 机IP: 192.168.0.80
二、向主(Master)机添加远程登录的授权用户
1.向主(Master)服务器添加用户:
@ 用户名: slave1
@ 密 码: 789
@ 允许自: 192.168.0.80 机器登录
授权方式1: 此种授权是可远程登录Master,仅用于主从复制没有其它任何select insert update等权限【推荐】
mysql> grant replication slave on *.* to ‘slave1‘@‘192.168.0.80‘ identified by ‘789‘;
2.刷新授权表:
mysql> flush privileges;
3.查看授权结果:
mysql> show grants for ‘slave1‘@‘192.168.0.80‘;
4.测试从Slave端登录远程主(Master)机:
# mysql -h 192.168.0.83 -u slave1 -p
789
5.从主(Master)机查看所有连接登录本机的客户端情况:
mysql> show processlist \G
三、主(Master)机配置
vi编辑打开mysql配置文件
# vi /usr/local/mysql/etc/my.cnf
找到从约第56行开始确认以下三项:
[mysqld]
log-bin=mysql-bin # 确认开启binlog日志
binlog_format=mixed # 确认binlog日志格式为mixd混合类型 server-id = 1 # 在整个主从架构内指定一个唯一的server-id,范围:1^32
四、从(Slave)机配置-【基本】
vi编辑打开mysql配置文件
# vi /usr/local/mysql/etc/my.cnf
找到从约第56行开始确认以下三项:
[mysqld]
log-bin=mysql-bin # 确认也开启binlog日志 binlog_format=mixed # 确认binlog日志格式为mixd混合类型 server-id = 2 # 在整个主从架构内指定一个唯一的server-id,范围:1^32 ◆
五、在主(Master)机端操作:执行命令刷新主机binlog日志记录,查看主机的最后日志文件及最后pos起始点
mysql> flush logs;
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 | 107 | | |
+------------------+----------+--------------+------------------+
六、在从(Slave)机启动slave服务
1.使用root用户登录到从(Slave)机
# /usr/local/mysql/bin/mysql -uroot -p123456
2.在从(Slave)上执行命令,动态改变连接到主(Master)机的配置,生成或更新master.info文件:
注: 在生产环境中,如果心跳感应到主机意外宕机,应用程序应该按预案选定出一台新主机,而其它的从机都需要执行一次下面
的 change master to ...语句,切换自己从属到新主机,这样比较灵活,操作的实质是更新master.info文件,查看此文件也
能发现MySQL其实是只能支持“一主多从”架构,而不能像Redis那样还可以支持多主一从架构。
mysql> change master to master_host=‘192.168.0.83‘, master_user=‘slave1‘, master_password=‘789‘, MASTER_LOG_FILE=‘mysql-bin.000006‘, MASTER_LOG_POS=107;
善于使用?查看详细选项
mysql> ? change master to
常用选项:
master_host=‘192.168.137.26‘ 远程主(Master)机IP
master_user=‘slave4‘, 登录远程主(Master)机 用户名
master_password=‘789‘, 登录远程主(Master)机 密码
不常用选项:
MASTER_LOG_FILE=‘mysql-bin.000009‘ 指定从哪个binlog文件复制(如果不加此参数默认是最早的binlog日志)
MASTER_LOG_POS=107 指定从哪个binlog文件的哪个pos点开始复制(如果不加此参数默认是最早的pos点)
MASTER_PORT=3306, 远程主(Master)机端口
MASTER_HEARTBEAT_PERIOD=60 多长时间探测一次主服务器是否在线 单位:秒
MASTER_CONNECT_RETRY=10; 无法连接主服务器的时候重试连接的间隔时间 单位:秒
3.启动IO线程和SQL线程,生成master.info文件,查看从(Slave)机状态:
mysql> start slave;
mysql> show slave status \G
如果看到如下状态说明同步成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
4.报错处理!如果“Slave_SQL_Running: No”,程序可能在slave上进行了写操作,也可能是slave机器重起后,事务回滚造成的。
解决方法一:
mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
mysql> show slave status \G;
解决方法二:
主(Master)上:
mysql> show master status; //主机上查看最新的binlog日志名及pos点
从(Slave)机上:
mysql> stop slave; //从机停掉slave服务
mysql> change master to master_host=‘192.168.137.26‘, master_user=‘slave4‘, master_password=‘789‘, MASTER_LOG_FILE=‘主机最新binlog日志名‘, MASTER_LOG_POS=最新pos点;
mysql> start slave;
mysql> show slave status \G;
标签:art 成功 执行 用户名 无法连接 nec 记录 code 改变
原文地址:https://www.cnblogs.com/sbfnxk201/p/10199721.html