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程序
最後校驗是否同步