zoukankan      html  css  js  c++  java
  • mysql 主从实施步骤

    复制实施步骤:
    
    1.确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。
    
    2.确保主服务器上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值。如:
        [mysqld]
    basedir=/usr/local/mysql
    datadir=/data01/mysql
    socket=/data01/mysql/mysql.sock
    user=mysql
    
    slow_query_log=ON
    long_query_time=2
    
    server-id=136
    log-bin=/data01/mysqllog/binlog/mysql-bin
    binlog_format=MIXED
    max_binlog_size = 512M
    binlog_cache_size = 128K
    
    character-set-server=utf8
    default-storage-engine=INNODB 
    innodb_file_per_table=1 
    
    symbolic-links=0
    max_connections=1024
    log-error=/var/log/mysql/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    relay-log-purge=1
    replicate-ignore-db = mysql
    replicate-ignore-db = information_schema
    
    skip-slave-start
    relay_log_info_repository = TABLE  
    master_info_repository    = TABLE  
    relay_log_recovery        = 1
    
    sync_relay_log = 1
    sync_master_info = 1
    innodb_log_buffer_size=8M
    innodb_buffer_pool_size=1280M
    
    
    
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    read_only
    
    3.启动主服务器
    注意:主服务器需要指定对哪些数据库记录二进制日志,这通过在启动主服务器时,加上
    --binlog-do-db= db_name选项来实现。如果要记录多个数据库,要分别为每个数据库指定该选项。
    目前主服务器上的启动脚本请使用/data/mysql/bin/startmysql。另外,主机开机后自动启动mysqld的脚本也已经修改。
    
    4.在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。
    mysql> GRANT REPLICATION SLAVE ON *.*
        -> TO '帐号'@'从服务器IP' IDENTIFIED BY '密码';
    
    grant replication slave  on *.* to 'backup'@'%' identified by 'kjk7787czcb' with grant option;
    
    GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'10.1.1.%' IDENTIFIED BY '123456';
    FLUSH PRIVILEGES;
    
    
    5.备份数据库。
    导出:
     mysqldump -uroot -p'1234567'  -R --single-transaction --master-data=2 --all-databases>slave.sql
    
    导入:
    mysql -uroot -p'1234567' <slave.sql
    
    如果你的是MYISAM或者既有MYISAM又有INNODB的话就在主服务器上使用如下命令导出服务器的一个快照:
    mysqldump -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql
    
    只有INNODB的话就是用如下命令:
    mysqldump -uroot -p --single-transaction --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql
    --single-transaction 这个参数只对innodb适用。
    --databases 后面跟除mysql以后的其他所有数据库的库名,我这里只有一个test库。
    --master-data 参数会记录导出快照时候的mysql二进制日志位置,一会会用到。
    
    7.在从服务器的my.cnf文件中添加下面的行:
         [mysqld]
    basedir=/usr/local/mysql
    datadir=/data01/mysql
    socket=/data01/mysql/mysql.sock
    user=mysql
    
    slow_query_log=ON
    long_query_time=2
    
    server-id=136
    log-bin=/data01/mysqllog/binlog/mysql-bin
    binlog_format=MIXED
    max_binlog_size = 512M
    binlog_cache_size = 128K
    
    character-set-server=utf8
    default-storage-engine=INNODB 
    innodb_file_per_table=1 
    
    symbolic-links=0
    max_connections=1024
    log-error=/var/log/mysql/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    relay-log-purge=1
    replicate-ignore-db = mysql
    replicate-ignore-db = information_schema
    
    skip-slave-start
    relay_log_info_repository = TABLE  
    master_info_repository    = TABLE  
    relay_log_recovery        = 1
    
    sync_relay_log = 1
    sync_master_info = 1
    innodb_log_buffer_size=8M
    innodb_buffer_pool_size=1280M
    
    
    
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    read_only
    slave_id值必须为2到232–1之间的一个正整数值。ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。
    
    
    8.使用--skip-slave-start选项启动从服务器启动从服务器,并导入备份数据库文件。
    [root@zjzc02 ~]# mysql -uroot -p'xxx1'<slave.sql 
    
    
    9.在从服务器上执行下面的语句,以系统的实际值替换选项值:
    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=7463227;
    
    change master to master_host='121.40.147.48',master_user='backup',master_password='xxxxxxx',master_log_file='mysql-bin.000009',master_log_pos=7463227;
    
    
    10.启动从服务器线程
    mysql> START SLAVE;
    11.执行上述程序后,从服务器应连接主服务器,并补充自从快照以来发生的任何更新。如果没有正确更新,请检查复制线程状态以及data目录下的.err文件获取信息。

  • 相关阅读:
    2022年第一天
    RestTemplate、 Ribbon、 OpenFeign 关系以及OpenFeign使用连接池
    linux下面编写简单的c++程序
    Rocket简介以及单机版安装
    事务源码(二)
    javaagent技术&Attach技术
    gateway网关原理
    Maven自定义插件以及使用
    AotucCrawler 快速爬取图片
    Monkey工具之fastbotiOS实践
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351431.html
Copyright © 2011-2022 走看看