近日在讀O’REILIY系列的《高可用MySQL》, 自然少不了主從(Master-Slave)配置和橫向擴展相關的內容。Master-Slave這東西吧,在許多公司都是標配,開發中基本天天都用,遇到的問題自然也不少(如主從不同步,Master宕機),但操作權限非常有限。有些東西,只有自己看了、做了,才能真正知道原理是什麼,也才能更好的去把握。
本文是高可用MySQL的第一篇讀書筆記,主要記錄Windows環境下壓縮版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 ,放在什麼地方,並不重要。
打開系統環境變量,在Path變量下追加(注意是追加不是覆蓋)MySQL bin目錄:
藍色部分應該是你的bin目錄的完整路徑。配置好之後,保存並關閉系統變量窗口即可。
正常安裝版的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的手冊。
進入Mysql的bin目錄中執行 mysqld –install mysql (請記得用管理員身份運行cmd)
啟動mysql服務: net start mysql(或者在計算機右鍵管理->服務->mysql右鍵啟動)
這時候在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 root@'%' identified by '123456';
(4)刷新權限
flush privileges;
User表是Mysql的內置表,用於記錄用戶權限、密碼等信息。這個表的主鍵是Host+User,這可以通過show index命令看出來:
_priv結尾的字段是對應賬戶的Mysql操作權限,filed-type 是enum
至此,Mysql的配置就算基本完成了,後續將會繼續貼上Mysql主從配置的內容。高可用Mysql之旅由此開始。
你要下載msi的才有安裝向導,壓縮文件的可以用批處理安裝!具體我忘了。
1、用記事本創建my.ini,保持空白即可,或者將其他ini改名為my.ini
下面操作需要進入cmd命令行
2、添加windows服務
E:\mysql-5.5.21-win32\bin>mysqld --install "MySQL"
Service successfully installed.
3、啟動mysql
net start mysql
檢查3306端口是否啟動
netstat -an|find "3306"
4、停止mysql
net stop mysql
5、刪除服務
E:\mysql-5.5.21-win32\bin>mysqld --remove "MySQL"
Service successfully removed.