標籤:style blog http color os 使用 ar strong sp
近日在讀O’REILIY系列的《高可用MySQL》, 自然少不了主從(Master-Slave)配置和橫向擴充相關的內容。Master-Slave這東西吧,在許多公司都是標配,開發中基本天天都用,遇到的問題自然也不少(如主從不同步,Master宕機),但操作許可權非常有限。有些東西,只有自己看了、做了,才能真正知道原理是什麼,也才能更好的去把握。
本文是高可用MySQL的第一篇讀書筆記,主要記錄Windows環境下壓縮版MySQL(基於安裝版的傻瓜式安裝過程這裡不再提及)的安裝過程。
1. 從官網上下載壓縮版的MySQL
為:http://www.mysql.com/downloads/
現在oracle接管MySQL之後,好像所有的資源都需要有oracle的帳號才可以下載,對於習慣了點擊即下載的人來說,的確非常不習慣。
我下載的檔案是:Mysql-advanced-5.6.21-win32.zip
這個版本的MySQL解壓之後非常大,大約有1.6G, 印象中之前機器上安裝的MySQL 5.1版本全部檔案+幾個項目的資料庫檔案,也不過是700M而已
解壓之後的檔案夾大約包含以下幾個子目錄:
其中:
bin目錄 - 主要存放MySQL的各種可執行程式
data目錄 - 存放資料庫的資料檔案和索引檔案等
MySQL-test - 有很多編寫好的測試指令碼
sql-bench - 用於MySQL benchmark基準測試的指令碼
bin、data, include, lib, scripts目錄等對於MySQL的正常運行非常重要,如非必要,不要動這些目錄的東西
關於解壓目錄的選擇:
很多人都喜歡將MySQL解壓到Program files檔案夾中,我這裡並不建議這樣做,原因是:Program files檔案夾本身帶有空格,很多情況下都可能出現問題。例如:有些程式可能會把空格當作目錄的結束。推薦的解壓目錄是:D:/Mysql/這種形式,或者在其他目錄下,如D:/LAMP/Mysql ,放在什麼地方,並不重要。
2. 配置環境變數
開啟系統內容變數,在Path變數下追加(注意是追加不是覆蓋)MySQL bin目錄:
藍色部分應該是你的bin目錄的完整路徑。配置好之後,儲存並關閉系統變數視窗即可。
3. 配置MYSQL 設定檔 my.ini
正常安裝版的MySQL會在MySQL的根目錄中產生4個不同配置的ini設定檔:分別為
my-small.ini
my-medium.ini
my-large.ini
my-huge.ini
這幾個設定檔大致是按照資料庫的規模給出的預設配置,可以按照自己的實際情況copy並產生實際的my.ini設定檔。有的版本還會產生只有Innodb的設定檔,這裡不再贅述。
本壓縮版的MySQL解壓縮之後,在根目錄只有一個預設的設定檔:my-default.ini。且開啟之後,配置選項極其簡單:
除此之外,再無其他(汗)。
我們的配置由此開始:
(1). 配置basedir
Basedir是指mysql的根目錄,所以應該是:basedir = D:\MYSQL
(2). 配置data
Data目錄是存放資料檔案和索引檔案的目錄,可以指定mysql目錄之外的目錄作為儲存目錄,但要注意許可權問題。我的配置是:datadir = D:\MYSQL\data
(3). 配置連接埠
一般mysql服務都使用3306連接埠,如果連接埠被佔了,可以更換其它連接埠
(4). 更多配置
設定用戶端模式字元:default-character-set=utf8,關於這個問題,之後會有一篇博文專門講述。
表預設儲存引:default-storage-engine=INNODB。這裡順便提一下,mysql比較舊的發行版中,預設的儲存引擎是MyIsam,較新的版本才是預設INNoDB的儲存引擎(具體哪個版本,筆者也不記得了:D, 可以通過查看changelog得知)
更多的配置請查看MySQL的手冊。
4. 安裝MySQL服務並啟動
進入Mysql的bin目錄中執行 mysqld –install mysql (請記得用管理員身份運行cmd)
啟動mysql服務: net start mysql(或者在電腦右鍵管理->服務->mysql右鍵啟動)
5. 修改MySQL user賬戶
這時候在cmd下應該可以通過命令列串連MySQL了
MySQL預設安裝後,會產生root使用者和一個匿名的使用者,建議修改root帳號密碼,並刪除匿名使用者,操作如下:
Use test; Select Host,User,Password from user;
(1)刪除匿名使用者:
delete from user where User=’’;
(2)更改root賬戶密碼:
update user set Password=PASSWORD(‘123456’) where User=’root’;
(3)添加Mysql遠端連線許可權
grant all privileges on *.* to [email protected]‘%‘ identified by ‘123456‘;
(4)重新整理許可權
flush privileges;
User表是Mysql的內建表,用於記錄使用者權限、密碼等資訊。這個表的主鍵是Host+User,這可以通過show index命令看出來:
_priv結尾的欄位是對應賬戶的Mysql操作許可權,filed-type 是enum
至此,Mysql的配置就算基本完成了,後續將會繼續貼上Mysql主從配置的內容。高可用Mysql之旅由此開始。
《高可用MySQL》讀書筆記1 – Windows環境下壓縮版MySQL安裝