MySQL数据库主从配置

准备工作,两台或者多台服务器mysql版本最好一致,或者是从服务器mysql版本大于主服务器mysql版本

1.配置MySQL数据库的配置文件my.cnf

位置:Linux服务器/etc/my.cnf或者是ect/mysql/my.cnf。windows服务器phpstudy/mysql/my.ini

在主服务器配置文件中的mysqld下写入:

server-id=1 #从数据库id =1(注:主从数据库的Id不能一致否者无法连接)
log-bin=mysql-bin
log_slave_updates=1
skip-grant-tables #跳过验证

在从服务器配置文件中的mysqld写入:(注意原配置文件,切勿重复写入)

server-id = 2   #从数据库id =2
log-bin=mysql-bin
binlog_format=mixed   #日志格式
skip-grant-tables   #跳过验证

保存完毕之后重起mysql(Linux命令)

service mysql restart

2.配置主库;

创建从库用户并授予从库复制主库的权限:

grant replication slave on *.* to '从服务器数据库用户名'@'从服务器的IP' identified by '从服务器的数据库密码';

重新加载权限

flush privileges;

登录主服务器mysql查看当前二进制文件的状态

show master status;

请记录绿色框中的数值

3.配置从库

change master to master_host='主服务器IP', master_port=3306, master_user='root',master_password='主库密码', master_log_file='mysql-bin.000005',master_log_pos=107;

启动从动

start slave;

4.查看从服务器mysql当前的slave状态

show slave status \G

这里重点关注到IO线程和SQL线程都没有启动:

Slave_IO_Running: yes

Slave_SQL_Running: yes

为yes时表示配置成功并且已经启动(如果二者同时为no时重启mysql)

5.master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]下可添加修改如下选项:

# 不同步哪些数据库 
binlog-ignore-db = mysql 
binlog-ignore-db = test  
binlog-ignore-db = information_schema  
# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = database(数据库名)

6.总结遇到的问题

Slave_IO_Running: no
Slave_SQL_Running: yes

1》查看3306端口是否开放

show variables like 'port';

2》检查配置文件中的server-id是否冲突注意id不能有冲突

show variables like 'server_id';

3》查看主服务器MySQL数据库的状态

show master status;

查看从服务器的状态

show slave status \G

这两条数据必须一致否则重新配置从服务器的MySQL

先停止从动,修改配置,在启动从动

stop slave;
change master to master_log_file='master-bin.必须一致',master_log_pos=必须一致;
start slave;

如果遇到

Slave_IO_Running: yes
Slave_SQL_Running: no

stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

(有时候需要多次执行上面这三条命令)

祝福每一位童鞋一次配置成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值