日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mysql實現主從配置和多主多從配置

瀏覽:31日期:2023-10-02 11:39:43

我們現在模擬的是主從(1臺主機、一臺從機),其主從同步的原理,就是對bin-log二進制文件的同步,將這個文件的內容從主機同步到從機。

一、配置文件的修改1、主機配置文件修改配置

我們首先需要mysql主機(192.168.254.130)的/etc/my.cnf配置文件,添加如下配置:

#主機唯一IDserver-id=1#二進制日志log-bin=mysql-bin#不需要同步的數據庫binlog-ignore-db=mysqlbinlog-ignore-db=information_schema#同步的數據庫名稱binlog-do-db=mycat#二進制的格式binlog_format=STATEMENT

我們看下目前整個my.cnf文件

[root@localhost Desktop]# cat /etc/my.cnf[mysqld]datadir=/usr/local/mysql/databasedir=/usr/local/mysqlsocket=/usr/local/mysql/data/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0server-id=1log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-ignore-db=information_schemabinlog-do-db=mycatbinlog_format=STATEMENT[mysqld_safe]log-error=/usr/local/mysql/data/mysqld.logpid-file=/usr/local/mysql/data/mysqld/mysqld.pid[root@localhost Desktop]#

修改主機的配置文件后,我們需要通過命令重啟下服務:

[root@localhost support-files]# lsmagic mysqld_multi.server mysql-log-rotate mysql.server[root@localhost support-files]# pwd/usr/local/mysql/support-files[root@localhost support-files]# ./mysql.server restart

然后我們修改下從機(192.168.254.131)的配置文件。

2、從機的配置

從機的配置修改比較簡單:

#從機機器唯一IDserver-id=2#中繼日志relay-log=mysql-relay

同樣修改配置后,我們重啟下從機

二、mysql客戶端命令操作

下面我們可以通過命令連接到mysql的命令端:

[root@localhost bin]# [root@localhost bin]# pwd/usr/local/mysql/bin[root@localhost bin]# ./mysql -uroot -p1、主機操作

1)、創建同步用戶

首先我們可以在主機創建一個專門用于主從同步用戶,通過命令:

GRANT REPLICATION SLAVE ON *.* TO ’SLAVE’@’%’ IDENTIFIED BY ’123456’;

2)、查看同步文件狀態

然后我們通過show master status;查看主機的同步內容狀態:

mysql> show master status;+------------------+----------+--------------+--------------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+--------------------------+-------------------+| mysql-bin.000001 | 154 | mycat| mysql,information_schema | |+------------------+----------+--------------+--------------------------+-------------------+1 row in set (0.00 sec)2、從機操作

1)、設置從機的主機

執行如下命令,這里設置了我們與主機建立同步的相關信息

CHANGE MASTER TO MASTER_HOST=’192.168.254.130’,MASTER_USER=’SLAVE’,MASTER_PASSWORD=’123456’,MASTER_LOG_FILE=’mysql-bin.000001’,MASTER_LOG_POS=430;

這里如果提示已經設置了主機配置,可以通過stop slave&reset master進行重置。

2)、啟動同步

下面我們再通過start slave開啟同步:

​ 就可以看到:

mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.254.130 Master_User: SLAVE Master_Port: 3306Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 592 Relay_Log_File: mysql-relay.000002Relay_Log_Pos: 482Relay_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: 592 Relay_Log_Space: 685 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: 0Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: 74397a99-accf-11eb-ae0d-000c2912d302 Master_Info_File: /usr/local/mysql/data/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp:Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 1 row in set (0.00 sec)mysql>

這里我們可以看到Slave_IO_Running、Slave_SQL_Running都為YES,則成功了,如果是下面這種:

*************************** 1. row *************************** Slave_IO_State: Connecting to master Master_Host: 192.168.254.130 Master_User: slave Master_Port: 3306Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 430 Relay_Log_File: mysql-relay.000001Relay_Log_Pos: 4Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Connecting 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: 430 Relay_Log_Space: 154 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: NULLMaster_SSL_Verify_Server_Cert: NoLast_IO_Errno: 1045Last_IO_Error: error connecting to master ’slave@192.168.254.130:3306’ - retry-time: 60 retries: 1 Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 0 Master_UUID: Master_Info_File: /usr/local/mysql/data/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: 210505 00:18:08 Last_SQL_Error_Timestamp:Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: 1 row in set (0.00 sec)

我們可以看到Last_IO_Error這里有錯誤,我們就可以去看下日志報的什么問題了,目前我這個是因為同步用戶寫錯了才不能同步,按上面說的先停止同步重置,修改后同步命令,再操作一遍就可以了。

三、主從同步測試1、主機創建庫

我們先在主機創建我們前面設置的要同步的數據庫mycat:

mysql> create database mycat;Query OK, 1 row affected (0.00 sec)mysql> use mycat;Database changedmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mycat || mysql || performance_schema || sys|+--------------------+5 rows in set (0.00 sec)mysql> 2、從機查看庫

然后我們就能在從機看到這個庫了

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mycat || mysql || performance_schema || sys|+--------------------+5 rows in set (0.00 sec)

3、表數據的初始

下面我們進行表數據的測試

1)、主機首先我們再主機建立表并插入數據

mysql> use mycat;Database changedmysql> mysql> create table `test1`( -> id int auto_increment not null primary key, -> name varchar(10) default null -> );Query OK, 0 rows affected (0.03 sec)mysql> insert into test1(`id`,`name`) value(1,'petty');Query OK, 1 row affected (0.16 sec)mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty |+----+-------+1 row in set (0.00 sec)mysql>

2)、從機下面我們在從機查看看有沒有成功同步:

mysql> use mycat;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-----------------+| Tables_in_mycat |+-----------------+| test1 |+-----------------+1 row in set (0.00 sec)mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty |+----+-------+1 row in set (0.00 sec)mysql>

可以看到我們的主從配置已經成功了。

四、多主多從

我們還可以多主多從,例如我們一個主從序列是編號1位主機、編號2為從機,然后編號3為主機、編號4為從機,同時編號1主機與編號3主機相互為主從,這樣就是其中主機一臺有問題,整個mysql集群還是能正常工作。

​ 由于目前只有3臺機,只使用三臺來寫demo(一臺windows,兩臺linux)。

1、編號1主機(192.168.254.30)

1)、修改配置我們首先需要修改其原來的etc/my.cnf文件,添加:

# 作為從機也修改其bin-log日志log-slave-updates#自增長的幅度auto-increment-increment=2#自增長的開始位置auto-increment-offset=1

整個文件的信息

[root@localhost Desktop]# cat /etc/my.cnf[mysqld]datadir=/usr/local/mysql/databasedir=/usr/local/mysqlsocket=/usr/local/mysql/data/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0server-id=1log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-ignore-db=information_schemabinlog-do-db=mycatbinlog_format=STATEMENTlog-slave-updatesauto-increment-increment=2auto-increment-offset=1[mysqld_safe]log-error=/usr/local/mysql/data/mysqld.logpid-file=/usr/local/mysql/data/mysqld/mysqld.pid[root@localhost Desktop]#

修改這個文件后我們需要重啟機器

2、編號2從機(192.168.254.31)

這臺原來已經配置其連接30機器了,所以這次不用修改

3、編號3主機(192.168.254.1)

1)、修改配置文件由于這臺機器是windows,所以我們需要修改其的my.ini文件,在其最后面添加

server-id=3log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-ignore-db=information_schemabinlog-do-db=mycatbinlog_format=STATEMENTlog-slave-updatesauto-increment-increment=2auto-increment-offset=2

注意我們上面改了server-id,同時也改了其的增長開始點auto-increment-offset=2。同時再重啟服務。

2)、創建同步用戶首先我們可以在主機創建一個專門用于主從同步用戶,通過命令:

GRANT REPLICATION SLAVE ON *.* TO ’SLAVE’@’%’ IDENTIFIED BY ’123456’;

3)、查看狀態

mysql> show master status;+------------------+----------+--------------+--------------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+--------------------------+-------------------+| mysql-bin.000001 | 154 | mycat| mysql,information_schema | |+------------------+----------+--------------+--------------------------+-------------------+1 row in set (0.00 sec)mysql>

4)、設置同步的狀態

下面我們運行其連接的主機(30)信息

CHANGE MASTER TO MASTER_HOST=’192.168.254.130’,MASTER_USER=’SLAVE’,MASTER_PASSWORD=’123456’,MASTER_LOG_FILE=’mysql-bin.000001’,MASTER_LOG_POS=430;

5)、編號1主機同步(192.168.254.30)我們需要設置其去同步編號3主機(192.168.254.1),即我們前面查看的編號3的(master status):

CHANGE MASTER TO MASTER_HOST=’192.168.254.1’,MASTER_USER=’SLAVE’,MASTER_PASSWORD=’123456’,MASTER_LOG_FILE=’mysql-bin.000001’,MASTER_LOG_POS=154;

然后我們在編號1主機執行同步start slave;,也在編號3主機執行同步start slave;。

4、測試查看

1)、可能的問題(可略過)

現在我們測試,然后分別查看這兩臺的master狀態show master status;。

mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.254.1 Master_User: SLAVE Master_Port: 3306Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 154 Relay_Log_File: localhost-relay-bin.000002Relay_Log_Pos: 320Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes........

mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.254.130 Master_User: SLAVE Master_Port: 3306Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 462 Relay_Log_File: LAPTOP-QR83QEC0-relay-bin.000003Relay_Log_Pos: 675Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB:.........

可以看到它們的同步都是yes。這里可能有問題,我們需要自己解決,例如我在編號1機器修改配置,然后在查看其的狀態,

mysql> show master status;+------------------+----------+--------------+--------------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+--------------------------+-------------------+| mysql-bin.000002 | 462 | mycat| mysql,information_schema | |+------------------+----------+--------------+--------------------------+-------------------+1 row in set (0.00 sec)mysql>

我如果以這個消息去讓編號3機器同步編號1,就會報(因為我又運行了一條新的插入語句),但建表語句是在日志mysql-bin.000001,而這里我因為重啟了,其有有新的mysql-bin.000002,所以有修改回了原來編號2的同步信息。

mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.254.130 Master_User: SLAVE Master_Port: 3306Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 462 Relay_Log_File: LAPTOP-QR83QEC0-relay-bin.000002Relay_Log_Pos: 320Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: 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: 1146 Last_Error: Error ’Table ’mycat.test1’ doesn’t exist’ on query. Default database: ’mycat’. Query: ’insert into test1(`id`,`name`) value(2,'TOm')’

2)、在編號3插入數據下面我們再編號3插入數據,看編號1、2能不能看到

在編號3操作:

mysql> insert into test1(`id`,`name`) value(3,'kitt');Query OK, 1 row affected (0.01 sec)mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty || 2 | TOm || 3 | kitt |+----+-------+3 rows in set (0.00 sec)mysql>

在編號1查看

mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty || 2 | TOm || 3 | kitt |+----+-------+3 rows in set (0.00 sec)mysql>

在編號2查看

mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty || 2 | TOm || 3 | kitt |+----+-------+3 rows in set (0.00 sec)mysql>

可以看到目前我們已經同步成功了,在編號1中能查看到主機編號3的插入信息。

3)、編號1處理數據

下面我們在編號1操作查看

編號1:

mysql> insert into test1(`id`,`name`) value(4,'lisa');Query OK, 1 row affected (0.00 sec)mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty || 2 | TOm || 3 | kitt || 4 | lisa |+----+-------+4 rows in set (0.00 sec)mysql>

編號3:

mysql> select * from test1;+----+-------+| id | name |+----+-------+| 1 | petty || 2 | TOm || 3 | kitt || 4 | lisa |+----+-------+4 rows in set (0.00 sec)mysql>

可以看到其是相互同步的。

到此這篇關于Mysql實現主從配置和多主多從配置的文章就介紹到這了,更多相關Mysql 主從配置和多主多從配置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99久久久久| 日韩午夜高潮| 在线精品视频在线观看高清| 日韩欧美一区二区三区免费看| 亚洲日本网址| 精品视频亚洲| 色一区二区三区四区| 蜜桃成人精品| 在线一区电影| 亚洲毛片在线免费| 日韩av免费大片| 在线天堂中文资源最新版| 精品亚洲a∨一区二区三区18| 国产专区精品| 亚洲精品精选| 国产精品22p| 亚洲欧美日韩视频二区| 在线精品视频一区| 国产精品主播| 成人国产精品久久| 伊人国产精品| 999国产精品999久久久久久| 日韩精品乱码av一区二区| 亚洲+小说+欧美+激情+另类| 麻豆高清免费国产一区| 影视先锋久久| 国产成人精品一区二区三区免费| 色婷婷精品视频| 午夜亚洲福利| 久久蜜桃资源一区二区老牛| 国产欧美日韩一级| 日韩在线一区二区| 欧美精品一区二区久久| 日韩在线视频一区二区三区| 高清在线一区| аⅴ资源天堂资源库在线| 日韩av中文字幕一区| 日韩av首页| 神马日本精品| 69堂精品视频在线播放| 黄色精品视频| 精品捆绑调教一区二区三区| 999精品色在线播放| 老司机免费视频一区二区| 日韩国产欧美三级| 黄色在线网站噜噜噜| 久久精品国产久精国产爱| 综合一区在线| 亚洲深夜影院| 亚洲综合日韩| 亚洲青青久久| 婷婷久久免费视频| 欧美特黄视频| 国产精品试看| 亚洲aa在线| 久久精品999| 日韩黄色大片网站| 另类中文字幕国产精品| 黄色在线观看www| 免费看欧美美女黄的网站| 亚洲一区欧美激情| 亚洲啊v在线免费视频| 亚洲精品在线二区| 日韩精品亚洲专区| 一区二区日韩免费看| 日本精品在线播放| 免费观看在线综合| 免费看av不卡| 夜夜嗨一区二区三区| 亚洲精品一二| 欧美天堂一区| 国产精久久一区二区| 久久久人人人| 蜜桃av一区二区| 美国欧美日韩国产在线播放| 极品日韩av| 少妇精品久久久一区二区| 婷婷综合亚洲| 麻豆一区二区99久久久久| 欧美日韩国产一区二区三区不卡| 性色一区二区| 国产精品17p| 香蕉成人久久| 狠狠操综合网| 免费在线观看精品| 国产精品亚洲成在人线| 秋霞国产精品| 久久精品超碰| 亚洲自拍另类| 国产精品久一| 一区二区电影在线观看| 国产美女精品视频免费播放软件| 91亚洲国产| 国产精品久久久久久久久免费高清 | 无码日韩精品一区二区免费| 日韩av电影一区| 极品av在线| 亚洲aa在线| 精品久久在线| 亚洲精品美女| 免费观看不卡av| 色欧美自拍视频| 伊人久久大香伊蕉在人线观看热v| 国产精品久久久久77777丨| 日韩精品一区第一页| 麻豆极品一区二区三区| 亚洲一区久久| 91精品国产自产在线观看永久∴ | 久久国产欧美日韩精品| 亚洲成人日韩| 色在线视频观看| а√在线中文在线新版| 久久久久亚洲精品中文字幕| 91成人小视频| 亚洲午夜国产成人| 午夜久久一区| 美女尤物久久精品| 欧美精品一区二区三区精品| 1024精品一区二区三区| 最新亚洲激情| 日韩网站在线| 久久亚洲国产精品一区二区| 久久精品国产精品亚洲毛片| 青青久久av| 国产精品多人| 在线观看免费一区二区| 久久精品资源| 欧美日韩夜夜| 国产精品一国产精品k频道56| 欧美亚洲一区二区三区| 美女久久网站| 国产欧美日韩精品高清二区综合区| 国产精品嫩模av在线| 欧美中文高清| 五月亚洲婷婷 | 日本欧美国产| 欧美日韩四区| 在线看片不卡| 老色鬼久久亚洲一区二区| 日韩不卡一区二区| 国产精品亚洲综合色区韩国| 欧美精品三级在线| 欧美激情99| av免费不卡国产观看| 成人久久一区| 视频一区中文字幕国产| 亚洲日本欧美| 国产在线一区不卡| 男人操女人的视频在线观看欧美| 久久亚州av| 少妇精品久久久一区二区三区| 欧美天堂视频| 蜜桃一区二区三区在线观看| 国产精品欧美日韩一区| 日韩一区欧美二区| 日韩国产网站| 久久精品凹凸全集| 日韩和的一区二在线| 蜜臀久久久久久久| 麻豆精品在线播放| 999国产精品视频| 日韩欧美久久| 欧美综合另类| 久久精品伊人| 日韩精品视频网站| 日韩中文字幕麻豆| 在线看片国产福利你懂的| 国产激情欧美| 蘑菇福利视频一区播放| 四虎国产精品免费观看| 在线观看视频免费一区二区三区| 成人一区不卡| 欧美在线91| 蜜桃久久精品一区二区| 色婷婷精品视频| 欧美激情在线精品一区二区三区| 99国产精品久久久久久久| 欧美69视频| 午夜电影亚洲| 久久三级视频| bbw在线视频| 精品不卡一区| 国产福利一区二区精品秒拍| 国产成人免费视频网站视频社区| 精品国产欧美日韩| 国产欧美69| 国产精品九九| 嫩呦国产一区二区三区av| 色乱码一区二区三区网站| 日韩电影免费网址| 国产精品亚洲四区在线观看| 精品女同一区二区三区在线观看| 日韩国产欧美三级| 日韩av午夜在线观看| 日韩高清国产一区在线| 日韩黄色在线观看| 国产调教精品| 999久久久亚洲| 欧美精品羞羞答答| 91精品尤物|