标题:
window 下的MYSQL主从同步
[打印本页]
作者:
fangzhen
时间:
2011-11-29 00:27
标题:
window 下的MYSQL主从同步
1,在master上为slave建立用户并给一个replication slave权限
grant replication slave on datename.* to ‘用户名[url=]
' @ '
[/url]主机地址' identified by “密码"
flush privileges;刷新权限
2,配置my.ini文件
log-bin=mysql-bin #启用二进制日志文件
log-bin="C:/Program Files/MySQL/MySQL Server 5.1/log/updatelog" #设定日志文件名
server-id=1 #设置数据库ID
binlog-do-db=databasename #二进制需要同步的数据库(多个用逗号分隔)
binlog-ignore-db=mysql #避免同步的数据库(多个用逗号分隔)
#配置主从同步
server-id=2 #从服务器ID
master-host=10.3.13.186 #主服务器IP
master-user=gnh1 #主服务器登陆名
master-password=112233 #主服务器登陆密码
master-port=3306 #主服务器断口
master-connect-retry=60 #断点从新连接时间(秒)
replicate-ignore-db=mysql #屏蔽对MYSQL库的同步
replicate-do-db=wuliu #二进制需要同步的数据库
3,在从库远程导入需要同步的数据库
mysqldump -u root -p -h 10.3.13.186 databasename>c:\databasename.sql #远程备份表
create database databasename #创建表
mysql -u root -p -f -D databasename<c:\databasename #导入表
4,在从数据库上slave stop 停掉slave服务
在主数据库上show master status查看主服务状态
在从数据库上change master to master_host='主数据库IP',master_user='username',master_password='password',master_log_file='查询到的二进制文件',master_log_pos='查询到的position'
在从数据库上slave start 重启slave 服务
show slave status\g 查看同步结果
Slave_IO_Running=YES Slave_SQL_Running=YES 同步成功
如果Slave_IO_Running=NO
1,检查错误日志,查看连接的主机,用户名,权限是否正确
2,如果包太大,show VARIABLES like '%max_allowed_packet%';查看包的最大限制并做调整
如果Slave_SQL_Running=NO
1,检查是否从库有数据更新或写入操作
2,slave进程重启,事务回滚造成。先slave stop掉slave进程。set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 再slave start 重启进程。
作者:
xiexie
时间:
2011-12-4 23:09
主库相关操作
1.flush tables with read lock; //主库上锁表
2.show master status; //记录 master log file及file position
比如:
+--------------------------+----------------+-------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------------+----------------+--------------------+-----------------------+
| xxxx-log.000031 | 199039244 | xxxx | |
+--------------------------+----------------+--------------------+-----------------------+
3.$tar -cvf database.tar ./data //备份数据文件
4.unlock tables; //解锁主库表
从库相关操作
1.将主库数据库文件copy到从库中
2.启动从库
3.stop slave;
4.reset slave;
5.change master to master_host='10.xx.xx.xxx,master_user='xxxx',master_password='xxxx',master_port=xxxx,master_log_file='xxxx-log.000031',master_log_pos=199039244;
5.start slave;
验证方法一:
//登陆从库
slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
上面2项都为'Yes',表示slave正常
验证方法二:
//登陆主库
show processlist;
Has read all relay log; waiting for the slave I/O thread to update it
表示正常
欢迎光临 PHP开发笔记 (http://phpvi.com/)
Powered by Discuz! 6.1.0