mysql的主從複製

由於mysql的架構中少不了主從,所以今天在虛擬機上做了一遍;

兩臺mysql服務器

主服務器   192.168.1.184

從服務器   192.168.1.233

主從複製實現的功能:

    主服務器中的數據同步到從服務器上,保證兩臺數據庫中的數據實時同步;

1、主服務器的配置

    1.1、安裝mysql

    [root@localhost ~]# yum -y install mysql mysql-server

    1.2、啓動mysql

    [root@localhost ~]#service mysqld start

    1.3、設置mysql的密碼 

    [root@localhost ~]#mysqladmin -uroot password 123456(由於是虛擬機,密碼簡單點,生產環境切勿設置此密碼)

    1.4、修改mysql的配置文件

    [root@localhost ~]#vim /etc/my.conf      ---在[mysqld]標籤下添加一下幾行

            log-bin=mysql-bin

server-id=184          ---一般設置爲服務器ip的最後一段

    1.5、重新啓動mysql

    [root@localhost ~]#service mysqld restart 

    1.6、在主服務器上建立賬戶並授權slave

    [root@localhost ~]#mysql -uroot -p 123456

    mysql>grant replication slave  on *.*  to 'backup'@'%' identified by '123456';

    mysql>flush privileges;

    1.7、查詢主服務器master的二進制日誌當前狀態,記錄下當前日誌文件名及位置,後面用的到

    msyql>show master status;

   +------------------+-----------+--------------+------------------+

   | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |

   +------------------+-----------+--------------+------------------+

   | mysql-bin.000001 |    523    |         |              |

   +------------------+-----------+--------------+------------------+

1 row in set (0.00 sec)

    msyql>select * from mysql.user where user = 'backup' \G;

     *************************** 1. row ***************************

                      Host: %

                      User: backup

                   Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

                 Select_priv: N

                 Insert_priv: N

                 Update_priv: N

                 Delete_priv: N

                 Create_priv: N

                  Drop_priv: N

                 Reload_priv: N

                Shutdown_priv: N

               Process_priv: N

                  File_priv: N

                  Grant_priv: N

            References_priv: N

                  Index_priv: N

                  Alter_priv: N

                Show_db_priv: N

                  Super_priv: N

          Create_tmp_table_priv: N

              Lock_tables_priv: N

                Execute_priv: N

            Repl_slave_priv: Y          ---爲y時說明成功

              Repl_client_priv: N

              Create_view_priv: N

               Show_view_priv: N

            Create_routine_priv: N

           Alter_routine_priv: N

              Create_user_priv: N

                  Event_priv: N

             Trigger_priv: N

                   ssl_type: 

                  ssl_cipher: 

                 x509_issuer: 

                x509_subject: 

                max_questions: 0

                 max_updates: 0

             max_connections: 0

           max_user_connections: 0

     1 row in set (0.07 sec)


     ERROR: 

     No query specified

2、從服務器配置

     2.1、安裝mysql

    [root@localhost ~]# yum -y install mysql mysql-server

     2.2、啓動mysql

    [root@localhost ~]#service mysqld start

     2.3、設置mysql的密碼 

    [root@localhost ~]#mysqladmin -uroot password 123456

     2.4、修改mysql的配置文件

    [root@localhost ~]#vim /etc/my.conf      ---在[mysqld]標籤下添加

server-id=233         ---一般設置爲服務器ip的最後一段

     2.5、重新啓動mysql

    [root@localhost ~]#service mysqld restart

    2.6、進入mysql  

    [root@localhost ~]#mysql -uroot -p 123456

    2.7、配置從服務器

        mysql>change master to  

mysql>master_host = '192.168.1.184', ---主服務器ip

mysql>master_user = 'backup',  

mysql>master_password = '123456',  

mysql>master_log_file = 'mysql-bin.000001';   --二進制文件名字

mysql>master_log_pos = 523;    --二進制文件其實位置

    2.8、開啓從服務器複製二進制日誌

        mysql>slave start;

    2.9、檢查從服務器複製狀態

        mysql>show slave status\G;    ---Slave_IO_Running: Yes   雙yes說明成功

                                  Slave_SQL_Running: Yes

      *************************** 1. row ***************************

                  Slave_IO_State: Waiting for master to send event

                    Master_Host: 192.168.1.184

                    Master_User: backup

                    Master_Port: 3306

                  Connect_Retry: 60

                 Master_Log_File: mysql-bin.000001

              Read_Master_Log_Pos: 523

                  Relay_Log_File: localhost-relay-bin.000010

                  Relay_Log_Pos: 

             Relay_Master_Log_File: mysql-bin.000001

                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: 612037678

                 Relay_Log_Space: 557

                 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: 1

     1 row in set (0.00 sec)


     ERROR: 

     No query specified

主從複製到這就算成功了,如果最後沒有出現雙yes,只出現一個或者一個沒有,請看看你的操作,另外,記得把防火牆關了

service  iptables stop

下面來驗證一下

3、驗證

    3.1、主服務器                  3.2、從服務器

查看數據庫                     查看數據庫  

mysql> show databases;                 mysql>show databases;

+--------------------+              +--------------------+ 

| Database           |             | Database           |

+--------------------+              +--------------------+

| information_schema |              | information_schema |

| backup             |          | backup             |

| mysql              |            | mysql              | 

| test               |            | performance_schema |

+--------------------+             | test               | 

4 rows in set (0.06 sec)            +--------------------+ 

    創建一個新的數據庫            5 rows in set (0.06 sec)

mysql> create database mysqldb;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;            

+--------------------+

| Database           |

+--------------------+

| information_schema |

| backup             |

| mysql              |

| mysqldb            |

| test               |

+--------------------+

5 rows in set (0.00 sec)

創建成功

                            查看從服務器的數據庫

       

                                  mysql> show databases;

                                  +--------------------+

                                  | Database           |

                                  +--------------------+

                                  | information_schema |

                                  | backup             |

                                  | mysql              |

                                  | mysqldb            |

                                  | performance_schema |

                                  | test               |

                                  +--------------------+

                                  6 rows in set (0.00 sec)

 

至此,主從複製算是成功了,希望對你有所幫助



    


      


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章