当前位置:Gxlcms > 数据库问题 > MySQL主从复制(Centos6.3&MySQL5.6)

MySQL主从复制(Centos6.3&MySQL5.6)

时间:2021-07-01 10:21:17 帮助过:3人阅读

-id=1 log-bin=mysqlmaster-bin.log sync_binlog=1 #注意:下面这个参数需要修改为服务器内存的70%左右 innodb_buffer_pool_size = 512M innodb_flush_log_at_trx_commit=1 sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO lower_case_table_names=1 log_bin_trust_function_creators=1

  重启mysql

 

配置从数据库:

  同样修改/usr目录下的my.cnf文件,并将之复制到/etc目录下

[mysqld]

server-id=2

log-bin=mysqlslave-bin.log

sync_binlog=1

#注意:下面这个参数需要修改为服务器内存的70%左右
innodb_buffer_pool_size=512M

innodb_flush_log_at_trx_commit=1

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

lower_case_table_names=1

log_bin_trust_function_creators=1

  重启数据库

 

在主数据库上创建账户用于主从之间数据复制   

GRANT REPLICATION SLAVE ON *.* TO 用户名@从数据库地址 IDENTIFIED BY 密码;

 

获取主数据库的的二进制日志坐标  

  执行:  

FLUSH TABLES WITH READ LOCK;

  主数据库锁表

 

  执行:

SHOW MASTER STATUS;

  会显示主数据库的二进制日志名称和位置,记录备用

  

  主数据库解锁:

UNLOCK TABLES;

 

给从数据库设置复制的主数据库信息

CHANGE MASTER TO MASTER_HOST=主数据库地址,MASTER_USER=刚才创建的用户名,MASTER_PASSWORD=密码,MASTER_LOG_FILE=二进制日志名称,MASTER_LOG_POS=坐标;

 

  启动复制线程

START slave;

  

  接着查询数据库的slave状态:

SHOW slave STATUS \G

  

  如果Slave_IO_Running和Slave_SQL_Running均为yes,那么表示主从复制成功

 

遇到的问题

  1.启动mysql时候,提示ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    原因是my.cnf里有错误,填写正确参数即可

  2.slave状态找那个的Slave_IO_Running是connecting 

    谷歌之后,原因有三:    

    1、网络不通  (确定网络互通之后,可关闭防火墙,要是还不行可iptables -F(***这个慎用***))

    2、密码不对  确认账户密码喽

    3、pos不对  确定主库的二进制日志名称和目录

 

  

 

MySQL主从复制(Centos6.3&MySQL5.6)

标签:

人气教程排行