MySQL主从同步
2013-01-16 11:40
253 查看
主:192.168.110.13[/b]
从:192.168.110.14[/b]
#配置主mysql[/b]
vim /etc/my.cnf
server-id=13 #服务器唯一ID,默认是1,一般取IP最后一段[/b]
log-bin=mysql-bin
service mysql restart
#建立同步用户[/b]
grant replication slave on *.* to 'replication'@'%' identified by "replication";
flush privileges;
reset master;
unlock tables;
show master status; #查看当前binlog日志,和日志位置[/b]
PS:注意查看File和Position的值
#配置从mysql
vim /etc/my.cnf
server-id=14 #服务器唯一ID,默认是1,一般取IP最后一段
log-bin=mysql-bin
service mysql restart
#在从库机器上连接主库进行测试,如果能够连接上表示之前用户名建立是成功的
mysql -ureplication -preplication -h 192.168.110.13
#使用mysqldump将主库进行完整的备份,再把相应的备份导入到从库中
mysqldump --all-database > dbbackup.sql
#将备份文件复制到从服务器上,恢复进从服务器
mysql -uroot -p < dbbackup.sql
#配置从mysql的slave
mysql> change master to
-> master_host='192.168.110.13', #主服务器的IP地址或虚拟IP地址
-> master_user='replication', #同步数据库的用户 -> master_password='replication', #同步数据库的密码
-> master_log_file='binlog.XXXXX', #主服务器二进制日志的文件名(File)
-> master_log_pos=XXXXX; #日志文件的开始位置(Position)
slave start; #启动从mysql复制功能
slave stop; #关闭从mysql复制功能
show slave status\G #显示从库状态信息
ERROR:
No query specified
\G后面不需要再加分号
#以下参数为yes表示成功
Slave_IO_Running:yes
Slave_SQL_Running:yes
#主从复制测试:在master服务器上创建库和表,然后再插入记录,再登录到slave服务器,查看是否也建立一致的库和表以及记录
(1)在master服务器上创建库和表并插入数据
create database demo_db;
use demo_db;
create table demo_tb(id int(5),name char(10));
insert into demo_tb values(01,'demo01');
(2)登录slave服务器查看
show databases;
use demo_db;
show tables;
select * from demo_tb;
#如果当前的从库以前曾经与其他服务器建立过主从关系,可能会发现即使在my.cnf文件中更改了主服务器的位置,但是MySQL仍然在试图连接就旧的主服务器的现象。发生这种问题的时候,可以通过清除master.info这个缓存文件或者在mysql中通过命令来进行设置,这个文件位于数据文件存放目录里。
1、直接删除master.info文件,然后重新启动服务
2、mysql命令方法
如果不方便重新启动服务的话,那么就只能使用mysql命令来帮助你做到。
(1)首先登录到主服务器上,查看当前服务器状态
mysql> show master status\G;
(2)记录下File和Position的值。然后登录从服务器
mysql> slave stop;
mysql> change master to
-> master_host='master_host_name', #主服务器的IP地址
-> master_user='replication_user_name', #同步数据库的用户
-> master_password='replication_password', #同步数据库的密码
-> master_log_file='recorded_log_file_name', #主服务器二进制日志的文件名(前面要求记录的参数)
-> master_log_pos=recorded_log_position; #日志文件的开始位置(前面要求记录的参数)
mysql> slave start;
从:192.168.110.14[/b]
#配置主mysql[/b]
vim /etc/my.cnf
server-id=13 #服务器唯一ID,默认是1,一般取IP最后一段[/b]
log-bin=mysql-bin
service mysql restart
#建立同步用户[/b]
grant replication slave on *.* to 'replication'@'%' identified by "replication";
flush privileges;
reset master;
unlock tables;
show master status; #查看当前binlog日志,和日志位置[/b]
PS:注意查看File和Position的值
vim /etc/my.cnf
server-id=14 #服务器唯一ID,默认是1,一般取IP最后一段
log-bin=mysql-bin
service mysql restart
#在从库机器上连接主库进行测试,如果能够连接上表示之前用户名建立是成功的
mysql -ureplication -preplication -h 192.168.110.13
#使用mysqldump将主库进行完整的备份,再把相应的备份导入到从库中
mysqldump --all-database > dbbackup.sql
#将备份文件复制到从服务器上,恢复进从服务器
mysql -uroot -p < dbbackup.sql
#配置从mysql的slave
mysql> change master to
-> master_host='192.168.110.13', #主服务器的IP地址或虚拟IP地址
-> master_user='replication', #同步数据库的用户 -> master_password='replication', #同步数据库的密码
-> master_log_file='binlog.XXXXX', #主服务器二进制日志的文件名(File)
-> master_log_pos=XXXXX; #日志文件的开始位置(Position)
slave start; #启动从mysql复制功能
slave stop; #关闭从mysql复制功能
show slave status\G #显示从库状态信息
No query specified
\G后面不需要再加分号
#以下参数为yes表示成功
Slave_IO_Running:yes
Slave_SQL_Running:yes
#主从复制测试:在master服务器上创建库和表,然后再插入记录,再登录到slave服务器,查看是否也建立一致的库和表以及记录
(1)在master服务器上创建库和表并插入数据
create database demo_db;
use demo_db;
create table demo_tb(id int(5),name char(10));
insert into demo_tb values(01,'demo01');
(2)登录slave服务器查看
show databases;
use demo_db;
show tables;
select * from demo_tb;
#如果当前的从库以前曾经与其他服务器建立过主从关系,可能会发现即使在my.cnf文件中更改了主服务器的位置,但是MySQL仍然在试图连接就旧的主服务器的现象。发生这种问题的时候,可以通过清除master.info这个缓存文件或者在mysql中通过命令来进行设置,这个文件位于数据文件存放目录里。
1、直接删除master.info文件,然后重新启动服务
2、mysql命令方法
如果不方便重新启动服务的话,那么就只能使用mysql命令来帮助你做到。
(1)首先登录到主服务器上,查看当前服务器状态
mysql> show master status\G;
(2)记录下File和Position的值。然后登录从服务器
mysql> slave stop;
mysql> change master to
-> master_host='master_host_name', #主服务器的IP地址
-> master_user='replication_user_name', #同步数据库的用户
-> master_password='replication_password', #同步数据库的密码
-> master_log_file='recorded_log_file_name', #主服务器二进制日志的文件名(前面要求记录的参数)
-> master_log_pos=recorded_log_position; #日志文件的开始位置(前面要求记录的参数)
mysql> slave start;
相关文章推荐
- mysql 主从同步
- mysql 可选择部分数据库 主从同步
- mysql主从同步(4)-Slave延迟状态监控
- MySQL主从同步(binlog方式)
- MySQL主从同步总结
- Mysql主从同步备份策略
- mysql 主从复制 mysql 主从同步 mysql 主从配置
- mysql主从同步的解决方法
- mysql主从同步
- MySQL主从同步、读写分离配置步骤、问题解决
- 数据库Mysql主从同步
- Linux Shell实战之四 Mysql主从同步
- mysql主从同步配置(超详细)
- mysql主从同步主服务器热切换
- mysql主从同步时重启从库
- [Mysql]主从同步的快速设置
- MySQL主从同步
- springmvc配置mysql数据库读写分离(基于注解aop)加上(搭建mysql主从同步)
- mysql主从同步
- 轻松实现MySQL主从同步的配置方法