Welcome 微信登录

首页 / 数据库 / MySQL / MariaDB单机双实例主从复制

MariaDB单机双实例主从复制MariaDB其实和MySQL一样,非有啥不一样那就是名字不一样。开始~上篇实验是MariaDB的单机多实例安装  http://www.linuxidc.com/Linux/2015-01/111090.htm双实例端口3307主库,3308从库3307主实例的mysqld配置[mysqld2]
port=3307
socket=/tmp/mysql3307.sock
pid-file=/tmp/mysql3307.pid
max_allowed_packet=1M
net_buffer_length=2k
table_open_cache=4
sort_buffer_size=64k
thread_stack=128k
basedir=/usr/local/mysql
datadir=/data/mydata2
server-id=244
log-bin = master3307-bin
log-bin-index = master3307-bin.index
thread_concurrency=4
innodb_file_per_table = 1
#mysql_pwd="teleframe"3308从实例的mysqld配置[mysqld3]
port=3308
socket=/tmp/mysql3308.sock
pid-file=/tmp/mysql3308.pid
max_allowed_packet=1M
net_buffer_length=2k
table_open_cache=4
sort_buffer_size=64k
thread_stack=128k
basedir=/usr/local/mysql
datadir=/data/mydata3
innodb_file_per_table = 1
server-id=245
log-bin=mysql3308-bin
relay-log = relay-log
relay-log-index = relay-log-index
thread_concurrency=4
read-only = on开始主从配置步骤1、连接到主库上授权一个REPLICATION SLAVE 帐号,并且刷新授权表[root@e3 mysql]# mysql -uroot -h127.0.0.1 -P3307 -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 8
Server version: 10.0.15-MariaDB-log Source distribution
 
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
 
Type "help;" or "h" for help. Type "c" to clear the current input statement.
 
MariaDB [(none)]> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test             |
| test1              |
+--------------------+
5 rows in set (0.00 sec)
 
MariaDB [(none)]> grant replication slave on *.* to "repl"@"192.168.0.%" identified by "repl";
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> show master status;
+-----------------------+----------+--------------+------------------+
| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------------+----------+--------------+------------------+
| master3307-bin.000005 |      632 |              |                  |
+-----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
MariaDB [(none)]>2、连接到从库上指定主库,启动slave[root@e3 ~]# mysql -uroot -p"teleframe" -h127.0.0.1 -P3308
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 3
Server version: 10.0.15-MariaDB-log Source distribution
 
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
 
Type "help;" or "h" for help. Type "c" to clear the current input statement.
 
MariaDB [(none)]> change master to master_host="192.168.0.244",master_user="repl",master_password="repl",master_port=3307,master_log_file="master3307-bin.000005",master_log_pos=632;
ERROR 1201 (HY000): Could not initialize master info structure for ""; more error messages can be found in the MariaDB error log #我这报错了,如果你跟我一样报错就执行下面的命令
MariaDB [(none)]> reset slave;
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> change master to master_host="192.168.0.244",master_user="repl",master_password="repl",master_port=3307,;
Query OK, 0 rows affected (0.22 sec) #好了现在连接上了      master_log_file="master3307-bin.000005",master_log_pos=632  表示从主服务器那个二进制日志文件开始复制因为这是复制授权信息,所以没必要复制,在主服务器上可以查看show master status; 查看内容show binglog events in "master-bin.000001";
MariaDB [(none)]> show slave statusG
*************************** 1. row ***************************
             Slave_IO_State:
                  Master_Host: 192.168.0.244
                  Master_User: repl
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: master3307-bin.000005
          Read_Master_Log_Pos: 632
             Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 4
        Relay_Master_Log_File: master3307-bin.000005
           Slave_IO_Running: No  #  从服务器有没有正常工作主要是看这个值是否YES
            Slave_SQL_Running: No  #
              Replicate_Do_DB:
          Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
          Exec_Master_Log_Pos: 632
              Relay_Log_Space: 248
              Until_Condition: None
             Until_Log_File:
                Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
             Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
             Last_SQL_Errno: 0
             Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
           Master_Server_Id: 0
             Master_SSL_Crl:
         Master_SSL_Crlpath:
                 Using_Gtid: No
                  Gtid_IO_Pos:
1 row in set (0.00 sec)
MariaDB [(none)]> start slave;  #好启动slave
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> show slave statusG
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.244
                  Master_User: repl
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: master3307-bin.000005
          Read_Master_Log_Pos: 632
             Relay_Log_File: relay-log.000003
                Relay_Log_Pos: 540
        Relay_Master_Log_File: master3307-bin.000005
           Slave_IO_Running: Yes  #表示从服务器正常工作了
            Slave_SQL_Running: Yes  #
              Replicate_Do_DB:
          Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
          Exec_Master_Log_Pos: 632
              Relay_Log_Space: 831
              Until_Condition: None
             Until_Log_File:
                Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
             Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
             Last_SQL_Errno: 0
             Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
           Master_Server_Id: 244
             Master_SSL_Crl:
         Master_SSL_Crlpath:
                 Using_Gtid: No
                  Gtid_IO_Pos:来测试!在主的上面创建一???库看从的是否可以复制到主上创建MariaDB [(none)]> create database kcwtest;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| kcwtest            |
| mysql              |
| performance_schema |
| test             |
| test1              |
+--------------------+
6 rows in set (0.00 sec)从上查看MariaDB [(none)]> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| kcwtest            |
| mysql              |
| performance_schema |
| test             |
+--------------------+
5 rows in set (0.00 sec)可以复制!这样就实现单机实例复制,我做的3个实例,3306端口给默认的用,3307,3308端口做主从复制。在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP) http://www.linuxidc.com/Linux/2013-07/86755.htmMariaDB Proxy读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htmLinux下编译安装配置MariaDB数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htmCentOS系统使用yum安装MariaDB数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm安装MariaDB与MySQL并存 http://www.linuxidc.com/Linux/2014-11/109047.htmUbuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10  http://www.linuxidc.com/Linux/2014-11/109471.htm[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB  http://www.linuxidc.com/Linux/2014-12/110048htmMariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里本文永久更新链接地址