MYSQL5.5 主从同步

MYSQL5.5 主从同步 window


    博客分类:
    mysql5.5


 
一,主服务器上的操作
1.--将主机阻断写操作并导出数据
执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
--加锁,以免导数据时数据库数据发生变化。
mysql>FLUSH TABLES WITH READ LOCK;
--打开一个新的命令窗口导出主机数据库
mysqldump -u root -p密码 --opt -R jq > jq.sql
--在mysql命令窗口为主机解锁
mysql> UNLOCK TABLES;
 
 
2.配置主服务器,找到mysql的配置文件 my.ini
往文件最末尾添加如下内容:
server-id=1  #这个要唯一,从服务器待会填不一样的数字
log-bin=mysql-bin #开启二进制日志功能
binlog-do-db = jq # 要复制同步的数据库
重启mysql服务以便让配置生效。
net stop mysql;
net start mysql;
 
3.启动服务后,执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
在命令窗口查看主服务器的状态。并记录以下信息:file:mysql-bin.000002  Position:1529881(从服务器需要用到)
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1529881 | jq |   |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
 
二.配置并导入数据到从服务器。
 
1.执行如下命令进去mysql命令窗口:
mysql -uroot -p密码;
删除已经有的库并创建新的数据库
drop database jq;
create database jq;
将数据导入数据库中,也可以使用工具实现导入。
mysql -u root -p密码 jq< 存放的路径/jq.sql
 
 
2.配置从服务器的my.ini文件。
往文件最末尾添加如下内容:
server-id=2  #这个要唯一,主服务器填不一样的数字
log-bin=mysql-bin #开启二进制日志功能
binlog-do-db = jq # 要复制同步的数据库
重启mysql服务以便让配置生效。
net stop mysql;
net start mysql;
 
3.--从机操作(在mysql命令窗口执行)
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='主机IP',
MASTER_USER='主机root用户',
MASTER_PASSWORD='主机root密码',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G
如果有以下显示就表示配置成功。
 
 Slave_IO_Running: Yes    
 Slave_SQL_Running: Yes 
 
备注:程序去写数据时,配置的链接URL数据库名一定要和数据库一致(大小写一致),

配置的my.ini要同步的数据库也是如此,都保持大小写一致。要不然产生不了binlog。




配置mysql5.5主从服务器(转)


教程开始:一、安装MySQL


说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22


 二、配置MySQL主服务器(192.168.21.169)mysql  -uroot  -p    #进入MySQL控制台
create database osyunweidb;   #建立数据库osyunweidb
insert into mysql.user(Host,User,Password)values('localhost','osyunweiuser',password('123456'));   #创建用户osyunweiuser


#建立MySQL主从数据库同步用户osyunweidbbak密码123456 


flush privileges;   #刷新系统授权表


#授权用户osyunweidbbak只能从192.168.21.168这个IP访问主服务器192.168.21.169上面的数据库,并且只具有数据库备份的权限
grant replication slave  on *.* to'osyunweidbbak'@'192.168.21.168' identified by '123456' with grantoption; 




三、把MySQL主服务器192.168.21.169中的数据库osyunweidb导入到MySQL从服务器192.168.21.168中1、导出数据库osyunweidb


mysqldump -u root -p osyunweidb >/home/osyunweidbbak.sql    #在MySQL主服务器进行操作,导出数据库osyunweidb到/home/osyunweidbbak.sql 


备注:在导出之前可以先进入MySQL控制台执行下面命令


flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入


unlock tables;   #解除锁定


2、导入数据库到MySQL从服务器


mysql  -u root -p  #进入从服务器MySQL控制台


create database osyunweidb;   #创建数据库


use osyunweidb    #进入数据库


source  /home/osyunweidbbak.sql  #导入备份文件到数据库


mysql -u osyunweidbbak -h 192.168.21.169 -p  #测试在从服务器上登录到主服务器
四、配置MySQL主服务器的my.cnf文件vi /etc/my.cnf   #编辑配置文件,在[mysqld]部分添加下面内容
server-id=1   #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=osyunweidb  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库
service mysqld  restart  #重启MySQL
mysql -u root -p   #进入mysql控制台
show master status;  查看主服务器,出现以下类似信息
+------------------+----------+--------------+------------------+
|File                        |Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000019 |    7131    |osyunweidb    |mysql                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注意:这里记住File的值:mysql-bin.000019和Position的值:7131,后面会用到。五、配置MySQL从服务器的my.cnf文件vi /etc/my.cnf   #编辑配置文件,在[mysqld]部分添加下面内容
server-id=2   #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库
log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。replicate-do-db=osyunweidb   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
:wq!    #保存退出
service mysqld restart   #重启MySQL
注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。
mysql  -u root -p  #进入MySQL控制台
slave stop;   #停止slave同步进程
change master to master_host='192.168.21.169',master_user='osyunweidbbak',master_password='123456',master_log_file='mysql-bin.000019' ,master_log_pos=7131;    #执行同步语句
slave start;    #开启slave同步进程
SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容
*************************** 1. row ***************************
               Slave_IO_State:Waiting for master to send event
                  Master_Host:192.168.21.169
                  Master_User:osyunweidbbak
                  Master_Port:3306
                Connect_Retry:60
              Master_Log_File:mysql-bin.000019
          Read_Master_Log_Pos:7131
               Relay_Log_File:MySQLSlave-relay-bin.000002
                Relay_Log_Pos:253
        Relay_Master_Log_File:mysql-bin.000019
             Slave_IO_Running: Yes            Slave_SQL_Running:Yes
              Replicate_Do_DB:osyunweidb
          Replicate_Ignore_DB:mysql
           Replicate_Do_Table:
       Replicate_Ignore_Table:
1 row in set (0.00 sec)
注意查看:Slave_IO_Running: YesSlave_SQL_Running: Yes以上这两个参数的值为Yes,即说明配置成功! 


六、测试MySQL主从服务器双机热备是否成功1、进入MySQL主服务器


mysql -u root -p  #进入主服务器MySQL控制台


use osyunweidb   #进入数据库


CREATE TABLE test ( id int not null primary key,name char(20));   #创建test表
2、进入MySQL从服务器


mysql -u root -p  #进入MySQL控制台


use osyunweidb   #进入数据库


show  tables;  #查看osyunweidb表结构,会看到有一个新建的表test,表示数据库同步成功









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值