mysqlAB复制实现数据同步,一开始master就有数据

linux 版本:redhat enterprise AS4U2; kernel is 2.6.9-22.ELsmp
mysql
版本:mysql-max-5.0.16-linux-i686-glibc23.tar.gz
环境介绍:主库 192.168.1.1 从库 192.168.1.2

1
、安装MYSQL
# tar -zxvf mysql-max-5.0.16-linux-i686-glibc23.tar.gz
# mv mysql-max-5.0.16-linux-i686-glibc23 /usr/local/mysql
# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql &
# chown mysql.mysql data -R
# chmod 777 data -R
# chgrp -R mysql .

注意:主从服务器均要安装MYSQL

2
、拷贝配置文件
# cp support-files/my-medium.cnf /etc/my.cnf

3
、修改主库/etc/my.cnf,修改[mysqld]里边的键值增加
[mysqld]
server-id=1
log-bin=binlog_name

/*
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data/
innodb_log_arch_dir = /usr/local/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
*/

注意: /**/中的配置在主从数据库的my.cnf文件中都要打开

4
、主库增加用户,用于从库读取主库日志。
mysql>grant replication slave,reload,super on *.* to 'slave'@'192.168.1.2' identified by '123456'

接下来备份Master上的数据,首先执行如下SQL语句:
mysql>FLUSH TABLES WITH READ LOCK;

不要退出这个终端,否则这个锁就不生效了;接着导出数据,可以直接打包压缩数据文件,也可以使用mysqldump工具来做,推荐前者的方法,这样更为快捷简便。

# cd /usr/local/mysql
# tar zcf data.tar.gz ./data

然后将这些数据拷贝到Slave服务器上,解开,设置好正确的权限及属主等;之后,执行 "UNLOCK TABLES" 语句来释放锁。

5
、从库连接主库进行测试。
# cd /usr/local/mysql
# ./bin/mysql -h192.168.1.1 -uslave -p
mysql>SHOW GRANTS;        

6
、停从库,修改从库/etc/my.cnf,增加选项:
[mysqld]
server-id=2
master-host=192.168.1.1
master-user=slave
master-password=123456
replicate-ignore-db=mysql       #
略过同步的数据库名,如果有多个,请设置多次
replicate-do-db = database2    #
想要同步的数据库名,如果有多个,请设置多次

log-warnings
/*
加入前面注释掉的段落
*/
5
、启动从库,进行主从库数据同步
# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &
# ./bin/mysql -u root -p

mysql>start slave;
mysql>load data from master;

注意:这一步也可以用数据库倒入或者直接目录考过来。

6
、进行测试:
主库创建表,
mysql>create database new;
mysql>use new;
mysql>create table wen (name char(20),phone char(20));
mysql>insert into wen values('abc,'0532555555');
mysql>slect * from wen;
打开从库,察看:
# ./bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| new                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql>use new;
mysql> show tables;
+---------------+
| Tables_in_new |
+---------------+
| wen           |
+---------------+
1 row in set (0.01 sec)

说明主从数据库创建成功。

7
、主从数据库相关命令:
slave stop; slave start ;
开始停止从数据库。

show slave status/G;
显示从库正读取哪一个主数据库二进制日志
可以看到,Slave_IO_Running Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave I/O SQL 线程都在正常运行。

purge master logs to 'binlog.000004';
此命令非常小心,删除主数据库没用的二进制日志文件。如果误删除,那么从库就没有办法自动更新了。

change master

从服务器上修改参数使用。

如果要更新主服务器信息,在从服务器上需要有如下操作
1.      
停止从服务器
2.      
删除data目录下的master.info 文件
3.      
更改/etc/my.cnf相关主服务器信息
4.      
重新启动数据库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值