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

环境:

  Master:Centos 6.3        192.168.1.4

   Slave:Centos 6.3            192.168.1.5

  MySQL: MySQL-5.6.25

 

MySQL采用rpm安装方式

  安装方式参照:http://www.cnblogs.com/xs104/p/4589041.html

 

配置主数据库:

  安装完成之后,会在/usr目录下生成一个my.cnf文件,修改配置文件并将之复制到/etc目录下

[mysqld]

server-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不对  确定主库的二进制日志名称和目录

 

  

 

posted @ 2015-07-13 16:17  li-xyz  阅读(177)  评论(0编辑  收藏  举报