Ubuntu12.04 源碼編譯安裝MySQL

      首先,ubuntu下有幾種安裝MySQL的方式,apt-get,官網下載deb文件或者源碼包安裝,這三種裏面,apt-get最快最方便,一切配置搞定了,自己剩下需要做的就是啓動MySQL吧,不過這種方式呢就是無法控制軟件版本,很有可能安裝的不是自己想要的版本。第二種方式,下載deb安裝,這個是一種二進制文件,類似的還有RPM文件,在文件中已經包含了編譯完成的文件,我們只需要直接安裝在自己的系統中就可以了;第三種方式,則是下載源碼包,自己編譯得到二進制文件再進行安裝,這個也就是今天要說的編譯安裝方式。

       下面是網上對源碼安裝和二進制文件安裝的區別說明:

源碼安裝
與二進制發行版本相比,如果我們選擇了通過源代碼進行安裝,那麼在安裝過程中我們能夠對MySQL
所做的調整將會更多更靈活一些。因爲通過源代碼編譯我們可以:
a) 針對自己的硬件平臺選用合適的編譯器來優化編譯後的二進制代碼;
b) 根據不同的軟件平臺環境調整相關的編譯參數;
c) 針對我們特定應用場景選擇需要什麼組件不需要什麼組件;
d) 根據我們的所需要存儲的數據內容選擇只安裝我們需要的字符集;
e) 同一臺主機上面可以安裝多個MySQL;
f) 等等其他一些可以根據特定應用場景所作的各種調整。
在源碼安裝給我們帶來更大靈活性的同時,同樣也給我們帶來了可能引入的隱患:
a) 對編譯參數的不夠了解造成編譯參數使用不當可能使編譯出來的二進制代碼不夠穩定;
b) 對自己的應用環境把握失誤而使用的優化參數可能反而使系統性能更差;
c) 還有一個並不能稱之爲隱患的小問題就是源碼編譯安裝將使安裝部署過程更爲複雜,所花費的時間更長;

      從上面看來,對MySQL只是一般需求的,還是通過二進制文件安裝把,免得引起不必要的麻煩。本人對編譯安裝過程中的一直參數也不是很熟悉,因此本安裝過程中的參數也是網上較爲通用的參數。

   下面說明編譯安裝的過程:

(1)如果之前安裝過的,先刪除

sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (如果mysql Cpp連接要用的,就不刪)
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
(2)現在MySQL編譯是要用CMake來完成,安裝

sudo apt-get install cmake    //安裝cmake
(3)配置編譯參數
cmake -DCMAKE_INSTALL_PREFIX=~/mysql-5.6.19 -DMYSQL_DATADIR=~/mysql-5.6.19/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1

如果失敗了,執行以下語句

sudo apt-get install libssl-dev libncurses5-dev

並且清除一些東西,再重新cmake

make clean
rm -f CMakeCache.txt
(4)cmake成功後進行安裝

Make
Make install

(5)初始化數據庫:(這裏沒有新建mysql用戶,就在原來的用戶(oracle)下)

chmod 777 scripts/mysql_install_db
scripts/mysql_install_db  --basedir=/opt/oracle/mysql-5.6.19  --datadir=/opt/oracle/mysql-5.6.19/data/  --user=oracle 

(6)將mysql文件夾下所有文件所屬組和擁有者設爲當前用戶

chown oracle:oracle * -R
(7)複製啓動腳本

sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod 777 /etc/init.d/mysql
(8)啓動mysql,加入path路徑,再新建root密碼

service mysql start
mysqladmin -u root password
(9)設置mysql開機啓動:

修改my.cnf,在[mysqld]區塊下添加“user=oracle”這樣一行,執行 sudo update-rc.d -f mysql defaults

(10)配置不會中文亂碼

 vi /etc/my.cnf     
[client]裏面加入
default-character-set=utf8
[mysqld]裏面加入
character_set_server=utf8
(11)配置表名不區分大小寫
[mysqld]裏面加入
lower_case_table_names=1
(12) 設置mysql可以遠程連接

mysql>GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "XXXXXX" WITH GRANT OPTION;
(root表示用戶,XXXXX表示密碼,自己修改!!!)
Mysql>flush privileges;
vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1註釋掉  (本來就沒有的話就算了)
或者改爲: bind-address = 0.0.0.0

(13) 配置最大連接數和最大包長度

max_allowed_packet=16M
max_connections=1500

      好,到這裏應該可以正常使用MySQL了,上述編譯過程中沒有考慮怎麼對其進行優化,這個需要查些資料,以後再來補充了。先附上看到的一篇文章,關於優化編譯安裝的:http://blog.csdn.net/bing19880122/article/details/5830650,另外,附上一篇對mysql配置進行優化的文章:http://blog.csdn.net/zouhao619/article/details/9039345 ,總之,安裝容易,以後要用好用精,還是要好好琢磨琢磨。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章