1. 程式人生 > >Mysql多資料來源 一(主從同步)

Mysql多資料來源 一(主從同步)

 mysql版本:Mysql 5.7配置

 

1:複製mysql檔案到別的位置

   由於下載的mysql預設情況下沒有my-default.ini配置檔案所以我從網上覆制了一份

   如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# server_id = .....
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# bin log file name of the log to create
# log_bin= .....
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

2:修改複製後mysql的配置檔案(把my-default.ini改成my.ini),並在複製後的的根目錄下新建data目錄

3:修改my.ini配置檔案

4:在命令列以管理員身份輸入以下兩句命令

      ->mysqld -initialize -insecure -user=mysql會發現data目錄下多一些檔案

    -> 為了保險起見把主伺服器的data目錄下的目錄複製過來

  ->執行mysqld install  ”名字“  把該資料庫同步到電腦服務中(多了一個mysql-3309)

   

 5:啟動mysql-3309看圖形化介面能否開啟

6:開啟之後顯示錶不存在(表資訊是存在mysql中的ibdata1中)所以複製整個原檔案的data目錄複製過來

        在這裡,我把全部的data目錄複製過來會報錯,檢視日誌發現裡面的uuid相同

        所有在後面我就只複製了資料庫和資料庫中的表資訊(資料庫中表的資訊存在data目錄下的ibdata1檔案下,所以把這個檔案複製過來就行 )

再次開啟就存在了

開始主從同步(通過二進位制log日誌來同步的,主資料庫發生修改,新增,刪除操作後會產生二進位制log日誌,從資料庫通過同步二進位制log日誌,來完成主從同步,又稱主從複製)

7:開啟主檔案下的my.init,修改配置

    ->1:server-id (主從資料庫的該屬性不能重複,是你這個mysql伺服器的唯一標識)

   ->2:log-bin=mysql-bin(注意mysql-bin是一個存放二進位制log檔案的路徑,我這裡指定了一個mysql當前安裝目錄的mysql-bin資料夾)

   ->新新增一個binlog-do-db=longlong_bike(指定你需要複製的資料庫)

 

8:開啟從伺服器的my.ini進行配置

   ->server-id

   ->log-bin

   ->新增一個replicate-do-db

   

9:開啟圖形化介面

在主資料庫中進行查詢

    -> show master status(記住position)

在從資料庫中進行查詢 

   ->change master to master_host='127.0.0.1',master_port=3306,master_user='root',master_password='admin',master_log_file='mysql-bin.000001',master_log_pos=154

   host:連線的主資料庫,port:連線的主埠... pos:是上面查詢出的position

   ->出現以上結果後,在執行start slave查詢語句

執行show slave status語句 看Slave_IO_Running和Salve_SQL_Running是否為yes

 一個負責與主機的io通訊,一個負責自己的slave mysql程序

 

最後校驗是否同步