码迷,mamicode.com
首页 > 数据库 > 详细

Mysql 之 主从复制

时间:2018-08-25 18:55:37      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:back   bec   记录   数据   size   操作系统   quic   roo   ica   

一、数据库主从复制基本要求:
1、操作系统版本一致(建议)。
2、数据库版本一致(建议)。
3、配置文件参数一致(是指一些性能参数)。

二、网络拓扑

技术分享图片

三、主数据库配置文件

[mysqld]
user = mysql
basedir = /app/mysql
datadir = /app/mysql/data
port=3306
server-id = 10                             #要与从库区别出来
log-bin = mysql-bin                  #必须启用binlog日志功能,主从基于日志同步
binlog_format = mixed             #binlog日志格式
expire_logs_days = 7               
#slave_skip_errors=1028

四、在主库上授权从库用户进行复制

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> grant replication slave on *.* to ‘mysync‘@‘10.3.150.199‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.04 sec)

五、把主库的TEST数据库备份下来

[root@web01 ~]# mysqldump -uroot -F -B test --single-transaction --master-data --triggers --routines --events  > test.sql
#--master-data 默认参数值是1,mysqldump出来的文件就会包括创:建数据库语句和CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置
[root@web01 ~]# ll
总用量 12
-rw-------. 1 root root  959 6月  17 15:20 anaconda-ks.cfg
drwxr-xr-x  2 root root 4096 8月  13 06:57 backup
-rw-r--r--  1 root root 2254 8月  26 02:21 test.sql     #数据库备份文件
[root@web01 ~]# scp test.sql root@10.3.150.199:/root/          #把此文件复制到从库里

六、修改从库的配置文件

[mysqld]
user = mysql
basedir = /app/mysql
datadir = /app/mysql/data
port=3306
server-id = 22          #从库必须要与主库不一致

七、在从库上创建上设置同步帐户

mysql> change master to
    -> master_host=‘10.3.150.198‘,
    -> master_user=‘mysync‘,
    -> master_password=‘123456‘;
Query OK, 0 rows affected, 2 warnings (0.08 sec)

八、导入主库备份过来的test.sql文件

    mysql> source /root/test.sql;
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)

九、启动主从同步

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.3.150.198
                  Master_User: mysync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000011
          Read_Master_Log_Pos: 154
               Relay_Log_File: web02-relay-bin.000007
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000011
             Slave_IO_Running: Yes           #代表同步成功
            Slave_SQL_Running: Yes         #代表同步成功

九、关于主从同步的的一些异常处理方法

1、提示错误 :Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work."

主要原因:主从服务器都是克隆出来的,导致两个MYSQL的auto.cnf文件里的server-uuid值完全相同。

2、提示错误:

Mysql 之 主从复制

标签:back   bec   记录   数据   size   操作系统   quic   roo   ica   

原文地址:http://blog.51cto.com/12965094/2164319

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!