官方文檔:
Installing MySQL Using a Standard Source Distribution
MySQL Source-Configuration Options
準備工作
1.安裝wget、gcc、gcc-c++、bison、ncurses-devel
$ yum install wget gcc gcc-c++ bison ncurses-devel -y
2.安裝cmake-3.7.1
$ cd /usr/local/src
$ wget https://cmake.org/files/v3.7/cmake-3.7.1.tar.gz
$ tar zxf cmake-3.7.1.tar.gz
$ cd cmake-3.7.1
$ ./bootstrap && gmake && gmake install
3.下載mysql源碼包並解壓
$ cd /usr/local/src/
$ wget http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.52.tar.gz
$ tar zxvf mysql-5.5.52.tar.gz
$ cd mysql-5.5.52
安裝過程
1.創建組mysql和用戶mysql
$ groupadd mysql
$ useradd -r -g mysql -s /sbin/nologin mysql
注:
-r 創建系統用戶;
-s 指定shell,/sbin/nologin只限制系統登錄,可以使用ftp等服務,/bin/false限制登錄及所有服務。
2.創建mysql安裝和數據存放目錄,屬主和屬組改爲mysql.mysql
$ mkdir –p /data/mysql
$ chown –R mysql.mysql /data/mysql
3.配置cmake選項
$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
$ echo $?
注:
1)cmake選項:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
指定安裝目錄
-DMYSQL_DATADIR=/data/mysql
指定數據存放目錄
-DSYSCONFDIR=/etc
指定配置存放目錄
-DDEFAULT_CHARSET=utf8
指定默認字符集
-DDEFAULT_COLLATION=utf8_general_ci
指定mysql排序規則(字符校對)
-DMYSQL_USER=mysql
指定mysql用戶
2)echo $? 用於配置結果檢驗,若輸出爲0,則配置成功。
4.編譯、安裝
$ make && make install
$ echo $?
5.初始化數據庫
$ ./scripts/mysql_install_db \
--user=mysql \
--datadir=/data/mysql \
--basedir=/usr/local/mysql
錯誤1:
-bash: ./scripts/mysql_install_db: Permission denied
解決方法:
chmod 755 ./scripts/mysql_install_db
錯誤2:
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
解決方法:
添加選項--basedir=/usr/local/mysql
6.拷貝配置文件到/etc/
$ cp support-files/my-large.cnf /etc/my.cnf
注:
mysql配置文件my.cnf在/usr/local/mysql/support-files/目錄下,分別爲my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf,適用於不同規模的項目。例如,如果運行MySQL服務器的系統內存不多,而且MySQL只是偶爾使用,那麼使用my-small.cnf配置文件最爲理想,這個配置文件告訴mysqld daemon使用最少的系統資源。反之,如果MySQL服務器用於支持一個大規模的在線購物網站,系統資源充足,那麼使用mysql-huge.cnf 最爲合適。
把my-large.cnf文件複製到服務器的/etc/my.cnf,此時文件中所定義的參數將全局有效,即對該服務器上運行的所有MySQL Server都有效。
7.mysql server服務添加到啓動文件,並更改權限
$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod 755 /etc/init.d/mysqld
8.修改服務啓動腳本
$ vim /etc/init.d/mysqld
修改部分如下:
basedir=/usr/local/mysql
datadir=/data/mysql
9.把啓動腳本加入系統服務項,並設定開機啓動,啓動mysql
$ chkconfig --add mysqld
$ chkconfig mysqld on
$ service mysqld start
錯誤之處,還望指出,多謝!