一、安裝完注意事項
mysql 安裝完後,執行打 services.msc
在紅框按右鍵內容,綠框的路徑有 my.ini,有改過想生效要按紅框右鍵的重新啟動,我的路徑如下:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80
注意 ProgramData 是隱藏資料夾,注意 [mysqld] 裡的 server-id 預設是 1,主和從必需不一樣
主還要在 [mysqld] 增加 binlog-do-db=bruce_test,bruce_test 為想複製的資料庫名稱,複製時是從當下複製,之前有的不會複製
如果有多個資料庫要複製,要寫多個 k=v,不是加逗號
二、網路
我使用 Oracle VM VirtualBox,必需先 ping 通
網路可以使用橋接介面卡或 NAT,兩個都是主機可上網就可以上網,但使用 NAT 時,虛擬機之間不能連線;而橋接都可以
關防火牆或開 port 使機器可以 ping 通
三、讓從機連主機
※主
SELECT * FROM mysql.user;
可以看到所有使用者和權限
host 欄位:表示什麼 IP 可以連到 mysql server,預設是 localhost,將想給別人用的帳號(主)的 host 內容改成從的 IP,或者用 %,表示任何 IP 都可以連
plugin 欄位:預設是 caching_sha2_password,改成 mysql_native_password 才能被連
也可以新增使用者,這個使用者是要給從的 mysql 連的帳號
CREATE USER '帳號'@'%' IDENTIFIED BY '密碼';
ALTER USER '帳號'@'%' IDENTIFIED BY '密碼';
GRANT REPLICATION SLAVE ON *.* TO '帳號'@'%';
ALTER USER 'aaa'@'%' IDENTIFIED WITH mysql_native_password BY 'aaa';
update mysql.user set host='%' where user='root'; //aaa
show variables like '%safe_updates%';
SET SQL_SAFE_UPDATES=0; // 預設安全性是開的(1),所以不能下修改的語法
FLUSH PRIVILEGES; // 改完後要重整
show master status; // 每次 flush privileges 後會不一樣
從機會用到 File 和 Position 欄位,Binlog_Do_DB 是要複製的資料庫、Binlog_Ignore_DB 是要忽略的資料庫
※從
從機打指令要下如下的語法才能連
mysql -uroot -p -h192.168.1.104 -P3306 --default-auth=mysql_native_password
mysql 指令在安裝目錄底下的 bin,也可增加環境變數
我的在 C:\Program Files\MySQL\MySQL Server 8.0\bin
沒有留言:
張貼留言