您的位置:首页 > 数据库 > MySQL

MySql数据库主从同步配置

2015-08-10 20:22 706 查看
一,Mysql版本:MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar    主从库要求版本一致,不一致的话谁也不知道会出现什么问题。

数据库安装方式:http://www.youxijishu.com/blogs/26.html

二,主库IP:192.168.0.201

从库IP:192.168.0.202

三,修改主库的配置my.cnf文件

linux上里入/etc文件夹,vi my.cnf  如果没有这个文件,则手动创建一个,添加如下:

[mysql]
server_id = 10001  #数据库的唯一id
log-bin =mysqlmaster-bin.log
sync_binlog=1
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
#relay-log=relay-bin
#relay-log-index = relay-bin-index
binlog-do-db=test1    #需要同步的数据库记录到日志中
binlog-do-db=test2
replicate-do-db=test1  #同步数据库
replicate-do-db=test2

binlog-ignore-db=mysql #不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

replicate-ignore-db=test #不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

重启mysql : service mysql restart

四,修改从数据库配置文件

<span style="font-size:18px;">[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
server_id = 10002
log-bin=mysqlslave-bin.log
sync_binlog=1

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

binlog-do-db=test1
binlog-do-db=test2
replicate-do-db=test1
replicate-do-db=test2

binlog-ignore-db=mysql #不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

replicate-ignore-db=test #不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M</span>
保存退出,并重启mysql

五,在主数据库创建一个来用执行主从复制的用户账号

     1,进入主数据库: mysql -uroot -p123456

     2, 创建用用:create user 'slaveroot2'@'192.168.0.202' identified by '123456'; //这里的192.168.0.202是从数据库的主机IP,创建的用户名是slaveroot2,密码是123456

     3,给账号加权限:grant replication slave on *.* to 'slaveroot2'@'192.168.0.202' identified by '123456';

     4,使账号生效:flush privileges;

六,启动主从同步
     1,进入从数据库:mysql -uroot -p123456

     2,,配置连接主数据库:
CHANGE
MASTER TO MASTER_HOST='192.168.0.201',MASTER_USER='slaveroot2',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=332;


注:MASTER_LOG_FILE和MASTER_LOG_POS这两个的值可以在主数据库执行show
master status查看到。



 
  3,接着执行:start slave;

 
  4,再执行:
SHOW
slave STATUS \G


 
    可以看到Slave_IO_Running: Yes

Slave_SQL_Running: Yes(尽量在mysql的图形管理界面查看)




接下来你可以在主数据库上创建数据库、表、插入数据,然后看从数据库是否同步了这些操作!


如有不明白地方可以访问:http://www.youxijishu.com或加入QQ群:66728073
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息