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到資料了^_^!