需求:
由于要使用saltstack,部署環境,先手動搭建了下主從環境,發現原來的word資料都找不到了,是以這次趕緊的記錄到部落格當中!!
環境:
兩台裝置,ip位址分别為:
node1:192.168.56.11
node2:192.168.56.12
系統:Centos7
軟體包:使用系統自帶的yum 來安裝的mariadb
==========================================================================================
安裝:
分别在兩台裝置上安裝資料庫mariadb,使用yum來安裝的,可以更換成過内的yum源來操作
指令:yum install -y mariadb mariadb-server
配置:
先配置node1上的master配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<code>[root@salt-node1 ~]</code><code># vim /etc/my.cnf</code>
<code>[mysqld]</code>
<code>innodb_file_per_table=NO</code>
<code>log-bin=</code><code>/var/lib/mysql/master-bin</code> <code>#這裡如果不指定路徑預設是在datadir下面生成</code>
<code>binlog_format=mixed</code>
<code>server-</code><code>id</code> <code>= 11</code><code>#這個主節點一定要是唯一的</code>
<code>datadir=</code><code>/var/lib/mysql</code>
<code>socket=</code><code>/var/lib/mysql/mysql</code><code>.sock</code>
<code># Disabling symbolic-links is recommended to prevent assorted security risks</code>
<code>symbolic-links=0</code>
<code># Settings user and group are ignored when systemd is used.</code>
<code># If you need to run mysqld under a different user or group,</code>
<code># customize your systemd unit file for mariadb according to the</code>
<code># instructions in http://fedoraproject.org/wiki/Systemd</code>
<code>[mysqld_safe]</code>
<code>log-error=</code><code>/var/log/mariadb/mariadb</code><code>.log</code>
<code>pid-</code><code>file</code><code>=</code><code>/var/run/mariadb/mariadb</code><code>.pid</code>
<code>#</code>
<code># include all files from the config directory</code>
<code>!includedir </code><code>/etc/my</code><code>.cnf.d</code>
重新開機node1上的mysql服務
<code>systemctl restart mariadb.service</code>
登入mysql:
<code>mysql -uroot -p</code>
<code>我這裡測試就沒有設定密碼</code>
建立帳号并賦予replication的權限。從庫,主從庫複制資料時需要使用這個帳号進行
<code>grant replication slave on *.* to </code><code>'root'</code><code>@</code><code>'192.168.56.%'</code> <code>identified by </code><code>'123456'</code><code>;</code>
加鎖:
實際工作中,需要禁止資料庫的寫入,要給資料庫上鎖
<code>FLUSH TABLES WITH READ LOCK;</code>
記錄主庫的binlog日志檔案和位置資訊(這個資訊,要在從庫配置的時候用到)
<code>MariaDB [(none)]> show master status;</code>
<code>+-------------------+----------+--------------+------------------+</code>
<code>| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |</code>
<code>| master-bin.000001 | 398 | | |</code>
<code>1 row </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
備份主庫的資料:
<code>mysqldump -uroot -p --all-databases > </code><code>/tmp/db</code><code>.sql</code>
下面開始配置從庫:
導入資料到從庫當中
<code>mysql -uroot -p <</code><code>/tmp/db</code><code>.sql</code>
修改配置檔案my.cnf:
25
26
<code>[root@salt-node2 ~]</code><code># cat /etc/my.cnf</code>
<code>#log-bin=mysql-bin</code>
<code>server-</code><code>id</code> <code>= 12</code>
<code>relay-log = </code><code>/var/lib/mysql/relay-bin</code>
<code>#log_slave_updates = 1</code>
<code>read_only = on</code>
重新開機服務:
登入mysql
設定主從服務配置
<code>CHANGE MASTER TO MASTER_HOST=</code><code>'192.168.56.11'</code><code>,MASTER_USER=</code><code>'root'</code><code>, MASTER_PASSWORD=</code><code>'123456'</code><code>, MASTER_LOG_FILE=</code><code>'master-bin.000001'</code><code>, MASTER_LOG_POS= 398;</code>
開啟主從服務:
<code>start slave;</code>
檢視從庫狀态:
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<code>MariaDB [(none)]> show slave status\G;</code>
<code>*************************** 1. row ***************************</code>
<code> </code><code>Slave_IO_State: Waiting </code><code>for</code> <code>master to send event</code>
<code> </code><code>Master_Host: 192.168.56.11</code>
<code> </code><code>Master_User: root</code>
<code> </code><code>Master_Port: 3306</code>
<code> </code><code>Connect_Retry: 60</code>
<code> </code><code>Master_Log_File: master-bin.000001</code>
<code> </code><code>Read_Master_Log_Pos: 485</code>
<code> </code><code>Relay_Log_File: relay-bin.000002</code>
<code> </code><code>Relay_Log_Pos: 617</code>
<code> </code><code>Relay_Master_Log_File: master-bin.000001</code>
<code> </code><code>Slave_IO_Running: Yes</code>
<code> </code><code>Slave_SQL_Running: Yes</code>
<code> </code><code>Replicate_Do_DB: </code>
<code> </code><code>Replicate_Ignore_DB: </code>
<code> </code><code>Replicate_Do_Table: </code>
<code> </code><code>Replicate_Ignore_Table: </code>
<code> </code><code>Replicate_Wild_Do_Table: </code>
<code> </code><code>Replicate_Wild_Ignore_Table: </code>
<code> </code><code>Last_Errno: 0</code>
<code> </code><code>Last_Error: </code>
<code> </code><code>Skip_Counter: 0</code>
<code> </code><code>Exec_Master_Log_Pos: 485</code>
<code> </code><code>Relay_Log_Space: 905</code>
<code> </code><code>Until_Condition: None</code>
<code> </code><code>Until_Log_File: </code>
<code> </code><code>Until_Log_Pos: 0</code>
<code> </code><code>Master_SSL_Allowed: No</code>
<code> </code><code>Master_SSL_CA_File: </code>
<code> </code><code>Master_SSL_CA_Path: </code>
<code> </code><code>Master_SSL_Cert: </code>
<code> </code><code>Master_SSL_Cipher: </code>
<code> </code><code>Master_SSL_Key: </code>
<code> </code><code>Seconds_Behind_Master: 0</code>
<code>Master_SSL_Verify_Server_Cert: No</code>
<code> </code><code>Last_IO_Errno: 0</code>
<code> </code><code>Last_IO_Error: </code>
<code> </code><code>Last_SQL_Errno: 0</code>
<code> </code><code>Last_SQL_Error: </code>
<code> </code><code>Replicate_Ignore_Server_Ids: </code>
<code> </code><code>Master_Server_Id: 11</code>
<code>ERROR: No query specified</code>
<code> </code><code>Slave_IO_Running: Yes </code><code>#這裡必須為yes,如果不是,需要排查故障</code>
<code> </code><code>Slave_SQL_Running: Yes </code><code>#這裡必須為yes,如果不是,需要排查故障</code>
主從驗證,
<code>#主庫建立資料庫</code>
<code>MariaDB [(none)]> create database jiayou ;</code>
<code>Query OK, 1 row affected (0.00 sec)</code>
<code>#從庫檢視是否同步過來這個資料庫</code>
<code>MariaDB [(none)]> show databases;</code>
<code>+--------------------+</code>
<code>| Database |</code>
<code>| information_schema |</code>
<code>| gg |</code>
<code>| jiayou |</code>
<code>| kk |</code>
<code>| mysql |</code>
<code>| performance_schema |</code>
<code>| salt |</code>
<code>| </code><code>test</code> <code>|</code>
<code>8 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>
有時候會有一些故障問題,可以參考下面這個部落格,自己懶的寫了
本文轉自 kesungang 51CTO部落格,原文連結:http://blog.51cto.com/sgk2011/1911038,如需轉載請自行聯系原作者