zoukankan      html  css  js  c++  java
  • docker mysql 主从复制

    当然首先 docker pull mysql

    mkdir /usr/local/mysqlData/master/cnf
    mkdir /usr/local/mysqlData/master/data
    vi /usr/loal/mysqlData/master/cnf/mysql.cnf
    [mysqld]
    pid-file    = /var/run/mysqld/mysqld.pid
    socket    = /var/run/mysqld/mysqld.sock
    datadir    = /var/lib/mysql
    
    symbolic-links=0
    
    character-set-server = utf8   
    #skip-networking  
    innodb_print_all_deadlocks = 1
    max_connections = 2000  
    max_connect_errors = 6000  
    open_files_limit = 65535  
    table_open_cache = 128   
    max_allowed_packet = 4M  
    binlog_cache_size = 1M  
    max_heap_table_size = 8M  
    tmp_table_size = 16M  
      
    read_buffer_size = 2M  
    read_rnd_buffer_size = 8M  
    sort_buffer_size = 8M  
    join_buffer_size = 28M  
    key_buffer_size = 4M  
      
    thread_cache_size = 8  
      
    query_cache_type = 1  
    query_cache_size = 8M  
    query_cache_limit = 2M  
      
    ft_min_word_len = 4  
      
    log-bin = mysql-bin
    server-id = 1
    binlog_format = mixed  
     
    performance_schema = 0  
    explicit_defaults_for_timestamp  
      
    #lower_case_table_names = 1  
      
    interactive_timeout = 28800  
    wait_timeout = 28800  
    
    # Recommended in standard MySQL setup  
      
    sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES   
      
    [mysqldump]  
    quick  
    max_allowed_packet = 16M  
      
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    read_buffer = 4M
    write_buffer = 4M

    docker run -itd -p 3306:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=masterpwd 5709795eeffa

    ,并添加复制master数据的用户,等下会用上

    [root@192 ~]# docker exec -it 942c2253509c /bin/bash
    root@942c2253509c:/# mysql -uroot -pmasterpwd 
    
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'masterpwd' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql> GRANT REPLICATION SLAVE ON *.* to 'reader'@'%' identified by 'readerpwd';
    
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

    mkdir /usr/local/mysqlData/slave/cnf
    mkdir /usr/local/mysqlData/slave/data
    vi /usr/loal/mysqlData/slave/cnf/mysql.cnf
    [mysqld]
    pid-file    = /var/run/mysqld/mysqld.pid
    socket    = /var/run/mysqld/mysqld.sock
    datadir    = /var/lib/mysql
    
    symbolic-links=0
    
    character-set-server = utf8   
    #skip-networking  
    innodb_print_all_deadlocks = 1
    max_connections = 2000  
    max_connect_errors = 6000  
    open_files_limit = 65535  
    table_open_cache = 128   
    max_allowed_packet = 4M  
    binlog_cache_size = 1M  
    max_heap_table_size = 8M  
    tmp_table_size = 16M  
      
    read_buffer_size = 2M  
    read_rnd_buffer_size = 8M  
    sort_buffer_size = 8M  
    join_buffer_size = 28M  
    key_buffer_size = 4M  
      
    thread_cache_size = 8  
      
    query_cache_type = 1  
    query_cache_size = 8M  
    query_cache_limit = 2M  
      
    ft_min_word_len = 4  
      
    log-bin = mysql-bin
    server-id = 2
    binlog_format = mixed  
     
    performance_schema = 0  
    explicit_defaults_for_timestamp  
      
    #lower_case_table_names = 1  
      
    interactive_timeout = 28800  
    wait_timeout = 28800  
    
    # Recommended in standard MySQL setup  
      
    sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES   
      
    [mysqldump]  
    quick  
    max_allowed_packet = 16M  
      
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    read_buffer = 4M
    write_buffer = 4M

     创建远程连接用户,并赋予查询数据库,以及查询的权限,可以用于读写分离

    docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=slavepwd 5709795eeffa
    
    #进入容器开启root 远程访问
    [root@192 ~]# docker exec -it 942c2253509c /bin/bash
    root@942c2253509c:/# mysql -uroot -pslavepwd
    
    mysql> grant SHOW DATABASES,SELECT on *.* to 'slave'@'%' identified by 'slavepwd';
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000007 |      675 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)

    mysql> change master to master_host='192.168.1.9',master_user='reader',master_password='readerpwd',master_log_file='mysql-bin.000007',master_log_pos=501;
    Query OK, 0 rows affected, 2 warnings (0.03 sec)
    
    mysql> start slave;
    Query OK, 0 rows affected (0.03 sec)
    
    
    
    mysql> show slave statusG
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.9
                      Master_User: reader
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000007
              Read_Master_Log_Pos: 501
                   Relay_Log_File: 0b763a8d1ddd-relay-bin.000002
                    Relay_Log_Pos: 320
            Relay_Master_Log_File: mysql-bin.000007
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes

    mysql> create database slavetest;
    Query OK, 1 row affected (0.00 sec)

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | slavetest          |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)
  • 相关阅读:
    postgres配置主从流复制
    laravel5如何创建service provider和facade
    postgres中几个复杂的sql语句
    Laravel5设计json api时候的一些道道
    技术晨读_2015_4_13
    PHP 中的Closure
    l5如何通过路由走api版本回退查找设置
    postgres中的中文分词zhparser
    postgres中的视图和物化视图
    问题:Virtual Box如何复制镜像
  • 原文地址:https://www.cnblogs.com/sweetchildomine/p/7814692.html
Copyright © 2011-2022 走看看