從mysql 5.5開始,mysql編譯採起了cmake編譯,來取代原來的configure,所以,咱們下面的編譯安裝,也是使用cmake編譯安裝。
須要準備的源碼包:c++
mysql源碼包:mysql-5.6.14.tar.gzsql
cmake源碼包:cmake-2.8.10.2.tar.gz [cmake咱們也採起編譯安裝,並下載最新版本]數據庫
1.對於全新的系統環境,源碼編譯安裝,須要不少包,可是,系統光盤裏基本上提供了,因此,建議你們先配置yum源,這裏不作演示[可參考博客裏 「yum倉庫配置」一文]。這裏默認你們已經配置好yum源:vim
[root@client100 ~]# yum -y install gcc-c++ ncurses-devel make perl bison ncurses緩存
2.進入存放源碼包的目錄,解壓cmake源碼包安全
# 解壓源碼包服務器
[root@client100 tmp]# tar -xf cmake-2.8.10.2.tar.gzsocket
# 進入解壓目錄ide
[root@client100 tmp]# cd cmake-2.8.10.2
# 配置安裝參數
[root@client100 cmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake
# 編譯源碼
[root@client100 cmake-2.8.10.2]# gmake
# 安裝
[root@client100 cmake-2.8.10.2]# make install
# 修改配置文件
[root@client100 cmake-2.8.10.2]# vim /etc/profile
# 在文件的最後,添加以下兩行[即修改PATH的路徑,指定cmake命令的路徑]
PATH=/usr/local/cmake/bin:$PATH
export path
# 使配置文件當即生效
[root@client100 cmake-2.8.10.2]# source /etc/profile
# 執行以下操做,若是能顯示具體版本,cmake就安裝成功
[root@client100 cmake-2.8.10.2]# cmake --version
cmake version 2.8.10.2
3.mysql編譯前,準備工做:
# 建立mysql用戶組
[root@client100 tmp]# groupadd mysql
# 建立用戶並加入用戶組,並取消login權限
[root@client100 tmp]# useradd -g mysql -s '/sbin/nologin' mysql
# 創建mysql安裝目錄
[root@client100 test]# mkdir -p /usr/local/mysql
# 創建mysql數據存放目錄
[root@client100 test]# mkdir -p /home/mysql/data
# 創建mysql安裝目錄的屬主
[root@client100 mysql-5.6.14]# chown mysql.mysql -R /usr/local/mysql
# 修改mysql數據存放目錄的所屬者
[root@client100 mysql-5.6.14]# chown mysql.mysql -R /home/mysql/data
4.開始編譯安裝mysql
# 解壓mysql 源碼包
[root@client100 tmp]# tar -xf mysql-5.6.14.tar.gz
# 進入mysql源碼包目錄
[root@client100 mysql-5.6.14]# cd mysql-5.6.14
# 用cmake配置安裝選項[ 每行結尾的 \ ,是由於一行寫不下,換到下行繼續,並去除後面的空格或回車]
[root@client100 mysql-5.6.14]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# /* 如下爲配置參數註解 */
# /* -DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 指定mysql安裝位置
# /* -DMYSQL_DATADIR=/home/mysql/data # 數據文件存放位置
# /* -DSYSCONFDIR=/etc # 配置文件my.cnf的位置
# /* -DWITH_MYISAM_STORAGE_ENGINE=1 # 支持MyIASM引擎
# /* -DWITH_INNOBASE_STORAGE_ENGINE=1 # 支持InnoDB引擎
# /* -DWITH_MEMORY_STORAGE_ENGINE=1 # 支持Memory引擎
# /* -DWITH_READLINE=1 # 快捷鍵功能
# /* -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock # 鏈接數據庫socket路徑
# /* -DMYSQL_TCP_PORT=3306 # 端口
# /* -DENABLED_LOCAL_INFILE=1 # 容許從本地導入數據
# /* -DWITH_PARTITION_STORAGE_ENGINE=1 # 安裝支持數據庫分區
# /* -DEXTRA_CHARSETS=all # 安裝全部的字符集
# /* -DDEFAULT_CHARSET=utf8 # 默認字符
# /* -DDEFAULT_COLLATION=utf8_general_ci
# 開始編譯
[root@client100 mysql-5.6.14]#gmake
# 安裝mysql到剛纔參數配置的目錄
[root@client100 mysql-5.6.14]# make install
# /* 注意事項 */
從新編譯時,須要清除舊的對象文件和緩存信息[若是能夠,就把解壓的目錄刪掉,從新解壓目錄或者執行以下操做]
# /* make clean
# /* rm -f CMakeCache.txt
# /* rm -rf /etc/my.cnf
5.後續mysql相關操做:
# 進入mysql安裝目錄下的腳本目錄
[root@client100 /]# cd /usr/local/mysql/scripts/
# 安裝mysql默認數據庫,指明數據庫安裝目錄,數據目錄,用戶
[root@client100 scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql
# 進入mysql配置文件目錄
[root@client100 mysql]# cd /usr/local/mysql/support-files/
# 複製配置文件到/etc目錄下,並更名爲my.cnf[若是目錄下有my.cnf文件,選擇覆蓋或者刪除或者在上面進行修改]
[root@client100 support-files]# cp my-default.cnf /etc/my.cnf
# 修改/etc/my.cnf的屬主
[root@client100 support-files]# chown mysql:mysql /etc/my.cnf
# 將安裝目錄屬主改成mysql[上面更改,到這裏又變成root屬主了,因此能夠選擇更改成mysql]
[root@client100 support-files]# chown mysql:mysql -R /usr/local/mysql
# 修改/etc/my.cnf配置文件
[root@client100 support-files]# vim /etc/my.cnf
# 配置文件內容以下: [目前,這裏只作簡單配置,下篇文章會詳述]
[mysqld]
innodb_buffer_pool_size = 128M
basedir =/usr/local/mysql
datadir =/home/mysql/data
port =3306
server_id =100
socket =/usr/local/mysql/mysqld.sock
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 複製啓動腳本文件到/etc/init.d/目錄下
[root@client100 support-files]# cp mysql.server /etc/init.d/mysqld
# 修改啓動腳本權限
[root@client100 support-files]#chmod 755 /etc/init.d/mysqld
# 修改啓動腳本
[root@client100 support-files]# vim /etc/init.d/mysqld
# 僅修改以下兩行,指定mysql安裝目錄,數據存放目錄
basedir=/usr/local/mysql
datadir=/home/mysql/data
# 編譯配置文件,將mysql相關命令路徑放到PATH環境變量裏
[root@client100 support-files]# vim /etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/cmake/bin:$PATH
export path
# 重讀配置文件,當即生效
[root@client100 support-files]# source /etc/profile
# 啓動mysql數據庫
[root@client100 mysql]# /etc/init.d/mysqld start
# 登錄測試[默認第一次登錄,沒有密碼]
[root@client100 mysql]# mysql
#/* 下面是mysql的一些簡答操做 */
#/* 安裝mysql後,設置root用戶密碼
[root@client100 mysql]# mysqladmin -uroot password 'kongzhong'
# 設置完密碼後,在直接用mysql登錄,是登錄不了
[root@client100 mysql]# mysql
ERROR 1045 (28000): Access denied foruser 'root'@'localhost' (using password: NO)
# 須要使用此種方式登錄
[root@client100 mysql]# mysql -uroot -pkongzhong
# 下面是刪除mysql數據庫中,密碼爲空的用戶
mysql> use mysql
mysql> select Host,User,Password fromuser;
mysql> delete fromuser where password='';
# 刷新受權表
mysql> flush privileges;
# 可選:運行安全設置腳本,修改MySQL用戶root(不是系統的root)的密碼,禁止root遠程鏈接(防止破解密碼),移除test數據庫和匿名用戶,強烈建議生產服務器使用:/usr/local/mysql/bin/mysql_secure_installation [在咱們的安裝環境中,命令行直接輸入mysql_secure_installation 便可]