1.環境準備 RHEL7.4(最小化安裝) 64bit 2G 記憶體 (1G 記憶體編譯將近一個小時) 磁碟空間 15G 以上。 配置為本地yum 源 從MySQL5.7版本開始,安裝MySQL需要依賴 Boost 的C++擴展,而且只能是 1.59.0 版本; 2.cmake簡介 從mysql5.5起 ...
1.環境準備
- RHEL7.4(最小化安裝) 64bit 2G 記憶體 (1G 記憶體編譯將近一個小時)
- 磁碟空間 15G 以上。
- 配置為本地yum 源
- 從MySQL5.7版本開始,安裝MySQL需要依賴 Boost 的C++擴展,而且只能是 1.59.0 版本;
2.cmake簡介
從mysql5.5起,mysql源碼安裝開始使用cmake.CMake一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。
configure方式和 cmake 方式對比區別:
configure command cmake command
------------------------------------------------------------------------------------
./configure cmake .
./configure --help cmake . -LH or ccmake .
##重新編譯時,需要清除舊的對象文件和緩存信息----------------------
make clean rm -f CMakeCache.txt
##安裝選項 --------------------------------------------------------------------
--prefix=/usr/local/mysql -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
##最終安裝--------------------------------------------------------------------
make make
make install make install
使用configure編譯完將生成 config.log 和 config.status 文件。
使用cmake編譯完在CMakeFiles目錄下生成 CMakeError.log 和 CMakeOutput.log 文件。
3.準備工作
-
準備 c++ booost 庫,不需要編譯 。
Boost 下載地址: http://www.boost.org/users/history ;選擇1.59.0版本下載,在編譯是填寫相應參數,指定Boost源碼位置即可;
tar xf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
- 下載mysql並解壓[root@001 ~]# tar xf mysql-5.7.19.tar.gz -C /usr/local/src
[root@001 ~]# cd !$
[root@001 src]# cd mysql-5.7.19/ - .安裝相關編譯工具
[root@001 mysql-5.7.19]# yum -y install gcc-c++ ncurses-devel cmake
4.編譯安裝(註意以下所有操作均要進入mysql-5.7.19中進行)
- [root@001 mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
## cmake 的檢測過程中,如果出現錯誤,需要重新 cmake, 刪除緩存文件
## rm CMakeCache.txt , 然後重新 運行 cmake 。
cmake 參數解析 :--------------------------------------
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 指定安裝路徑
-DMYSQL_DATADIR=/data/mysql 指定數據存放路徑
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci 設置字元校驗集
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 設置套接字生成路徑
-DMYSQL_USER=mysql
-DWITH_MYISAM_STORAGE_ENGINE=1 存儲引擎的支持
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost 指定Boost擴展源碼路徑
- make
##此過程很漫長,請耐心等待,#如果出錯重新運行配置,需要刪除 CMakeCache.txt文件,
使用命令: rm -f CMakeCache.txt
- make install
## 千萬註意磁碟空間的使用率。
5.配置文件
- 提供配置文件, my.cnf 預設配置詳情如下,可以自己建立
[client]
port=3306
socket=/mysql/mysql.sock ##註意修改所有者:mysql
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-grant-tables ##跳過授權表 可以直接進入資料庫修改密碼
user=mysql
port=3306
basedir=/usr/local/mysql57 ##註意修改所有者:mysql
datadir=/mysql
tmpdir=/tmp
socket=/mysql/mysql.sock
log-error=/mysql/mysqld.log
pid-file=/mysql/mysqld.pid
6.修改啟動客戶端方式
- PATH=$PATH:/usr/local/mysql57/bin 寫入到 /etc/profile 中,永久生效 source /etc/profile 重新讀取生效
## 將編譯好的 mysql bin 裡面的命令,加入到 $PATH 變數中,可使用[root@server-150 ~]# mysql進入客戶端
- 不修改可以使用絕對路徑 [root@server-150 ~]# /usr/local/mysql57/bin/mysql
7.初始化資料庫
- 初始化資料庫
[root@http9 mysql]# /usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
# 初始化資料庫, 確保 /mysql 目錄是mysql 可寫的。
命令參數解釋:
--defaults-file : 指定MySQL配置文件路徑 ##這裡面有我們剛纔配置好的參數
--initialize : 初始化隨機密碼,註意,初始化的密碼是一個過期密碼,登錄後需要立刻修改密碼
--user: 指定運行用戶
- 啟動mysql 服務
[root@http9 mysql]# /usr/local/mysql57/support-files/mysql.server start
8.修改root密碼
[root@server-150 ~]# mysql ##進入資料庫
修改密碼的三種方法:
方法一 :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123123'; ##成功後修改新密碼。
mysql> flush privileges;
方法二:
SET PASSWORD = PASSWORD('你的新密碼'); ## 新版本的root 密碼不再接受 弱密碼,需要一定的複雜度。
否則會提示錯誤:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
方法三:
update mysql.user set authentication_string=password("[email protected]");
flush privileges;
總結:修改密碼後即可正常使用mysql,與rpm版相比編譯版更加簡潔,刪除數據時只需要將數據目錄/mysql和基本目錄、usr/local/mysql57刪除即可。