2014年6月6日星期五

mysql 数据库热备份主从设置

一、主从设置

log-bin=mysql-bin
server-id       = 1
expire_logs_days = 5
binlog-do-db=数据库1
binlog-do-db=数据库2
binlog-ignore-db=mysql

二、mysql多实例化(windows下) 如果有其他mysql服务器,这里不需要
拷贝mysql目录
mysqld install mysql2 服务安装
修改端口
注册表修改
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/项目找到你刚才手动安装的服务,在mysql-nt"和mysql2之间加入my.ini的路径信息,格式为:

--defaults-file="d:/mysql/my.ini"

server-id = 2
master-host=主ip
master-user=用户名
master-password=密码
master-port=3306
replicate-ignore-db=mysql
replicate-do-db=数据库1
replicate-do-db=数据库2

数据库需要一致,到出主服务器数据到从服务器
导出数据库为sql命令文件
第一步是清空所有表和块写入语句,并锁定COMMIT操作。这里不要退出mysql!
第二步是启动另一个终端导出数据。
第三步是查看状态,
第四步是解除第一步的锁状态。
mysql>FLUSH TABLES WITH READ LOCK;
mysqldump --master-data=2 --single-transaction -u root -p table >table.sql
mysql>SHOW MASTER STATUS;
mysql>UNLOCK TABLES;


帐户设置
用户名 密码 RELOAD, SUPER, REPLICATION SLAVE

从服务器命令启动
slave stop;
show variables like 'server_id';
set global server_id=2;
CHANGE MASTER to MASTER_HOST='主ip', MASTER_PORT=3306, MASTER_USER='用户名', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106;

MASTER_LOG_FILE MASTER_LOG_POS 通过master执行show master status 获得

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; 设置同步错误时执行

查看是否成功
slave start;
show slave status\G;
  Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
代表成功

没有评论:

发表评论