1. 程式人生 > >Linux下MySQL資料庫主從同步配置

Linux下MySQL資料庫主從同步配置

LinuxMySQL資料庫主從同步配置

.配置mysql主資料庫#172.30.65.122

mysql -u root-p#進入控制檯

create databasecesudb#建立資料庫測速db

insert intomysql.user(Host,User,Password)values('localhost','cesuuser',password('123456'));#建立使用者cesuuser,密碼是123456

grant all oncesudb.* to 'cesuuser'@'172.30.65.169' identified by '123456' with grantoption;#

授予cesuuser的使用者在nagios伺服器172.30.65.169的機器上對cesudb的完全訪問許可權。

insert intomysql.user(Host,User,Password)values('localhost','cesudbbak',password('123456'));#建立mysql資料庫主從同步使用者cesudbbak,使用者密碼是123456

grantreplication slave on *.* to 'cesudbbak'@'172.30.65.124' identified by '123456'with grant option;#授權cesudbbak

使用者正能在172.30.65.124的機器上訪問主資料庫並只有備份的許可權。

flushprivileges;#刷新系統授權表

.Mysql主伺服器172.30.65.122上的資料庫 cesudb匯入到Mysql從伺服器172.30.65.124

注意:在到處前可在控制檯執行以下的命令

flush tableswith read lock;#資料庫只讀鎖定命令,防止到處資料庫的時候有資料寫入。

匯出資料庫cesudb

mysqldump -uroot -p --default-character-set=utf8 --opt -Q -R --skip-lock-tables cesudb >/home/cesudbbak.sql#

需要在主資料庫伺服器的shell>下操作,把資料庫cesudb匯出到/home目錄下並重新命名為cesudbbak.sql

unlock tables;#解除鎖定,在mysql控制檯執行

scpcesudbbak.sql [email protected]:/home#/home目錄下把該檔案傳到從資料庫172.30.65.124/home目錄下。

2.進入從資料庫#172.30.65.124
mysql -uroot -p

create databasecesudb;#建立資料庫cesudb

use cesudb;使用資料庫cesudb

source/home/cesudbbak.sql#匯入備份檔案到資料庫

mysql -ucesudbbak -h 172.30.65.122 -p#測試在從資料庫伺服器172.30.65.124上登陸資料庫主伺服器172.30.65.122。該命令的執行要在shell>下面。

.配置主資料庫伺服器172.30.65.122my.cnf檔案。

vim /etc/my.cnf#這裡的本機的mysqlyum安裝的,如果你是編譯安裝的需另行找到主配置檔案並修改。把該目錄下的檔案改為以下就可以了。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=1#
需新增的行,該行制定為1表示主伺服器
log-bin=mysql-bin#
需新增的行,啟動mysql二進位制日誌系統
binlog-do-db=cesudb#
需新增的行,需要同步的資料庫名,如有多個數據庫可以重複新增此行
binlog-ignore-db=mysql#
需新增的行,不同步mysql系統資料庫
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

service mysqldrestart#重啟mysql服務

mysql -u root-p#進入mysql控制檯

show variableslike 'server_id';#檢視server_id的值是否為1
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id    | 1    |
+---------------+-------+
1 row in set (0.00 sec)

show masterstatus#檢視主伺服器資訊,出現以下類似的資訊

mysql> showmaster status;
+------------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB |Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      106 | cesudb      |mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

注意:這裡記住上面的FilePosition的值,後面還會用到。

.配置從資料庫的my.cnf檔案#172.30.65.124

vim /etc/my.cnf
修改為以下內容即可,該機器上的從資料庫也是yum安裝的,如自己機器上的資料庫是編譯安裝的可以另行制定配置檔案位置
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=2#
需新增的行,設定其值等於2,表示是從資料庫
log-bin=mysql-bin#
啟動mysql二進位制日誌系統
replicate-do-db=cesudb#
需要同步的資料庫名,如果有多個數據庫可以重複此引數,每個資料庫一行
replicate-ignore-db=mysql#
不同步mysql系統資料庫
read_only#
設定資料庫只讀
#bind-address=172.30.65.124
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

service mysqldrestart#重啟資料庫

mysql -u root-p#進入mysql控制檯

show variableslike 'server_id';#看到id2,表示正常
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id    | 2    |
+---------------+-------+
1 row in set (0.00 sec)

 slavestop;#停止slave同步程序

change master tomaster_host='172.30.65.122',master_user='cesudbbak',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos=106;#執行同步語句,master_log_filemaster_log_pos就是上面提到的那連個值
mysql> change master tomaster_host='172.30.65.122',master_user='cesudbbak',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos=106;
Query OK, 0 rows affected (0.02 sec)

slave start;#開啟slave同步程序

SHOW SLAVESTATUS\G#檢視同步資訊,會出現以下的同步資訊
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
              Slave_IO_State: Waiting formaster to send event
                  Master_Host:172.30.65.122
                  Master_User:cesudbbak
                  Master_Port:3306
                Connect_Retry: 60
              Master_Log_File:mysql-bin.000006
          Read_Master_Log_Pos: 106
              Relay_Log_File:mysqld-relay-bin.000002
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000006
            
Slave_IO_Running: Yes           Slave_SQL_Running: Yes
              Replicate_Do_DB: cesudb
          Replicate_Ignore_DB: mysql
          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: 106
              Relay_Log_Space: 407
              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: 
1 row in set (0.00 sec)
注意出現紅色字型的部分,以上的連個引數出現yes代表配置成功。

.測試主從配置

1.在主資料庫上建立一個表student#172.30.65.122
mysql -u root -p

use cesudb;

create table...#建一個測試表
mysql> create table student (
    -> id int,
    -> name char(10),
    -> sex char(2));
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+------------------+
| Tables_in_cesudb |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

2.登入從資料庫檢視該表#172.30.65.124

mysql> usecesudb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_cesudb |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

已經自動同步過來,說明同步成功。

相關推薦

LinuxMySQL資料庫主從同步配置

Linux下MySQL資料庫主從同步配置 一.配置mysql主資料庫#172.30.65.122 mysql -u root-p#進入控制檯 create databasecesudb#建立資料庫測速db insert intomysql.user(Host,User,Pa

9、Linuxmysql資料庫安裝與配置實操

1、安裝 sudo yum -y install mysql-server 2、 sudo vim /etc/my.cnf 將字符集設定成UTF-8 3、將mysql設定為隨系統啟動 sudo chkconfig mysqld on sudo chkco

Linuxmysql資料庫一主一從同步配置

MySQL主從同步配置 mmj 16.09.29 1.確認執行環境 1.1確認主從IP 主伺服器(master):192.168.3.10 從伺服器(slave):192.168.3.18 1.2確認資料庫版本 都為5.5.31 2.主伺服器上配置 2.1修改MySQ

AWS LinuxMySQL資料庫的安裝與配置

1.root使用者登入Linux,使用yum 命令安裝MySQL,安裝完畢後,mysql 資料庫路徑在/var/lib/mysql ,配置檔案路徑為/etc/my.cnf sudo yum install mysql sudo yum install mysql-ser

linux伺服器mysql設定主從同步的過程

1.從資料庫伺服器開啟rsync vi /etc/rsyncd.conf 編輯rsync配置 /usr/bin/rsync --daemon 啟動rsync 2.停止日誌收集伺服器的crontab /etc/init.d/cron stop 3.停止主資料庫rsync

linuxrsync文件同步配置詳解

寫入文件 sts ddr ORC 文件的 數據鏡像 根據 數據 watermark 介紹 rsync(remote sync)是unix及類unix平臺下的數據鏡像備份軟件,它不像FTP那樣需要全備份,rsync可以根據數據的變化進行差異備份,從而減少數據流量,提高工作效率

Linuxmysql資料庫的多例項實現

準備環境: centos7 安裝 yum install mariadb-server 規劃實現多例項的目錄結構、 埠:3306,3307, 3308 每個例項存放資料庫的資料夾 /data/mysql{3306,3307,3308} /data/mysql/3306/{etc,

Linuxmysql資料庫安裝

Linux下mysql資料庫的安裝 本文主要介紹通過tar.gz進行資料庫的安裝,也可通過yum進行直接安裝 該筆記基於mysql5.5.61版本。 1、安裝mysql 1)、上傳mysql的tar包到/usr目錄下 2)、安裝mysql 解壓mysq

Linuxmysql資料庫的自動備份與還原 遠端備份和本地備份

Linux系統下Mysql備份還原 MySql的還原與備份 1 備份     mysqldump -u root -p shop > /home/andy/shop20150910.sql   

.Neter玩轉Linux系列之六:LinuxMySQL的安裝、配置、使用

基礎篇 實戰篇 一、Linux安裝MySQL (1)下載安裝包:https://dev.mysql.com/downloads/mysql/ (2)解壓並安裝 命令:tar zxvf 檔名 解壓完成之後,重名一下資料夾名字。 命令:mv 檔名1 

MySql資料主從同步配置

由於需要配置MySQL的主從同步配置,現將配置過程記錄下,已被以後不時之需 MySql資料主從同步 Mysql的 主從同步 是一個非同步的複製過程,從一個 Master複製到另一個 Slave上。在 Master 與 Slave 之間的實現整個複製過程主要由三個執行

Linuxmysql資料庫自動定時備份

對於網遊來說,資料庫中的資料尤其重要,實際運營中通常會有DBA或者運維人員對資料庫中資料進行日常備份,防止伺服器宕機或硬碟損壞導致的資料丟失問題 1.建立備份目錄 cd /home/game mkdir backup cd backup2.建立備份shell指令碼 vi

Linuxmysql資料庫定時備份並刪掉3天前的備份檔案

1.首先檢查下有沒有安裝crond,命令為service crond status,如果出現unrecognized service,則說明沒有安裝,如果出現    crond is stopped。如果出現crond (pid  1956) is running...則表示

MySQL資料庫主從同步延遲分析及解決方案

一、MySQL的資料庫主從複製原理 1.主庫對所有DDL和DML產生的日誌寫進binlog; 2.主庫生成一個 log dump 執行緒,用來給從庫I/O執行緒讀取binlog; 3.從庫的I/O 

LinuxMySQL資料庫操作的常用命令列

一.linux下啟動mysql的命令:             1. mysqladmin start           2. /ect/init.d/mysql start (前面為mysql的安

linux mysql資料庫的備份和還原

#mysqldump db_name >/path/name.sql 上面的命令意思是把一個庫匯出到一個SQL檔案. 當然,你直接在有ROOT密碼的機子上執行以上命令一定會報錯.所以,請用 #mysqldump db_name >/path/na

Linuxmysql資料庫每天自動備份定時備份

1、檢視磁碟空間情況:既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗,資料丟失的惡果! 儲存到當前磁碟這是最簡單,卻是最不推薦的;伺服器有多塊硬碟,最好是把備份存放到另一塊硬碟上;有條件就選擇更好更安全的儲存介質;# df -h Filesys

mysqlLinuxmysql資料庫顯示不全解決全過程

症狀:在mysql下,show databases,僅顯示兩個資料庫,而非全部的資料庫mysql>show databases;  +--------------------+  |Databas

windows遠端連結虛擬機器LinuxMySQL資料庫

這裡先說一下MySQL登陸:   格式: mysql -h主機地址 -u使用者名稱-p使用者密碼     1、例1:連線到本機上的MYSQL     找到mysql的安裝目錄,一般可以直接鍵入命令mysql -uroot -p,回車後提示你輸密碼,輸入密碼,直接回車即

Linuxmysql資料庫操作

本文轉自:點選開啟連結,感謝原文作者的耐心整理和無私分享。一.linux下啟動mysql的命令:   1. mysqladmin start          2. /ect/init.d/mysql start (前面為mysql的安裝路徑) 二.linux下重啟mysql