1. 程式人生 > >MySql解壓版安裝&配置多資料庫&主從分離

MySql解壓版安裝&配置多資料庫&主從分離

基於windows作業系統,筆者使用MySql5.5,安裝目錄D:\tools。

安裝解壓版MySql步驟

1、解壓檔案到目錄(D:\tools\MySql5.5_Main),作為主資料庫。
2、配置環境變數
建立使用者變數
這裡寫圖片描述
新增系統變數,Path中新增(;%MYSQL_MAIN%\bin)
3、修改配置檔案(my.ini)

[client]
loose-default-character-set = utf8
#password   = your_password
port        = 3307
socket      = /tmp/mysql.sock

[mysqld]
loose-default-character-set = utf8
port
= 3307 basedir = D:/tools/MySql5.5 datadir = D:/tools/MySql5.5/data socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 384M max_allowed_packet = 20M table_open_cache = 512 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M myisam_sort_buffer_size = 64M thread_cache_size
= 8 query_cache_size = 32M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 8 #skip-name-resolve ##跳過賬戶驗證 log-bin=mysql-bin ##啟動二進位制日誌(必選) [WinMySQLadmin] Server = D:/tools/MySql5.5/bin/mysqld.exe #啟動服務可執行檔案 server-id = 1

需要注意的是server-id,如果是多個數據庫,server-id依次增加。

4、新增服務(需要管理員身份執行CMD)

mysqld --install MySqlMain --defaults-file="D:\tools\MySql5.5\my.ini"

MySqlMain是服務的名字,–defaults-file:服務依賴檔案。

啟動、停止服務(需要管理員身份執行CMD)

net start MySqlMain;
net stop MySqlMain;

解除安裝服務(需要管理員身份執行CMD)

sc delete MySqlMain

首次登入
如果不知道密碼,在my.ini中配置skip-name-resolve,跳過密碼驗證

mysql -uroot;##可以直接登入
##修改root賬戶的密碼
use mysql;
update user set password=password("yourpassword") where user="root";
flush privileges;
exit ;

成功後,修改配置檔案,註釋掉skip-name-resolve,重啟服務,即可用密碼登陸。
mysql -uroot -pyourpassword;

1-4步完成mysql的安裝,安裝多個mysql,重複1-4,port需要修改成不同的,server-id 依次增加。

那麼主縱資料庫怎麼配置呢?
1、主庫配置方式:請檢視上面的安裝解壓版MySql步驟。
2、主庫建立賬戶:“slaver”,密碼:”slaver”,目的是為了從庫訪問主庫同步資料。賬戶和密碼可以自定義。

insert into mysql.user(Host,User,Password) values('%','slaver',password('slaver'));
## 賬戶授權(REPLICATION、SLAVE 這兩個許可權足夠)
GRANT REPLICATION SLAVE ON *.* TO 'slaver'@'192.168.1.1%' IDENTIFIED BY 'slaver';

3、SHOW SLAVE STATUS;
這裡寫圖片描述
記下File和Position的值,後面會用到,下面來配置從庫。
4、從庫配置方式:請檢視上面的安裝解壓版MySql步驟,在第3步中,需要多配置一項replicate-do-db = tests,在#skip-name-resolve 下加即可
意思是你要同步的資料庫是哪個,tests是一個在主庫上已近存在的庫。(特別提醒,從庫不需要手動建立tests庫,有時候會遇到編碼格式的問題,同步的時候,MySql會自動檢索,如果沒有則自動建立並且同步資料。)
5、OK,從庫也建立好了,如果願意的話,你可以建立10個從庫,註冊的服務名不能重複哦。
啟動從庫服務並登陸

STOP SLAVE; ## 停止同步
CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='slaver',MASTER_PASSWORD='slaver',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=107; ## 繫結、變更主從關係
START SLAVE; ##開啟同步
SHOW SLAVE STATUS\G; ##檢視同步連結狀態

解釋下繫結、變更主從關係中的一些屬性
MASTER_HOST:主庫IP,MASTER_USER:訪問主庫的使用者名稱,MASTER_PASSWORD:訪問主庫的密碼,MASTER_PORT:主庫的埠號,MASTER_LOG_FILE:主庫的File,就是二進位制日誌名稱,MASTER_LOG_POS:主庫的Position,上面咱們記下來的兩個值,用在這裡。
筆者建議,如果是首次配子主從資料庫,將MySql/data檔案目錄下的檔案,除了mysql、performance_schema之外的檔案全部刪除了,然後啟動服務,MASTER_LOG_FILE就會重mysql-bin.000001開始了,每次啟動這個日誌都會重新生成一個,後面的數字會依次增加。當然,不是每次重新啟動MySql服務都要執行一次”CHANGE MASTER TO 。。。”,只要同步一次就OK了,這個關聯關係會自動同步到主庫的日誌檔案。
SHOW SLAVE STATUS\G; 執行玩的效果
這裡寫圖片描述
主要看3項:
Slave_IO_Running: Yes //主庫同步介面連結成功
Slave_SQL_Running: Yes //從庫開啟同步
Replicate_Do_DB: tests //同步的資料庫
前兩項一定都要是Yes。
好了,到這裡一切都搞定了,可以測試下,在主庫insert,從庫就可以select到資料了^_^!