環境說明 :mysql
centos7.4 64位虛擬機 c++
mysql5.7.21.tar.gz 編譯安裝須要虛擬機2G內存web
安裝步驟以下:sql
一、安裝依賴包:數據庫
cmake:因爲從 MySQL5.5 版本開始棄用了常規的 configure 編譯方法,因此須要 CMake 編譯centos
器,用於設置 mysql 的編譯參數。如:安裝目錄、數據存放目錄、字符編碼、排序規則等。app
GCC 是 Linux 下的 C 語言編譯工具,mysql 源碼編譯徹底由 C 和 C++編寫,要求必須安裝socket
GCCide
bison:Linux 下 C/C++語法分析器工具
ncurses:字符終端處理庫
# yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake
二、創建用戶,安裝目錄和數據目錄權限
# groupadd mysql
# useradd -g mysql -s /bin/false -M mysql
# mkdir -p /data/mysql/
# mkdir /usr/local/mysql
# chown -R mysql:mysql /data/mysql/
三、下載boost
Boost #從 MySQL 5.7.5 開始 Boost 庫是必需的,mysql 源碼中用到了 C++的 Boost 庫,要求
必須安裝 boost1.59.0 或以上版本
# mkdir /usr/local/boost
# cd /usr/local/src/
# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# tar -xvf boost_1_59_0.tar.gz
# mv boost_1_59_0/* /usr/local/boost/
四、編譯安裝mysql
# cd /usr/local/src
# tar -xvf mysql-5.7.21.tar.gz
# cd mysql-5.7.21
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/usr/local/mysql/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 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
配置解釋: -DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL 安裝的根目 錄]
-DMYSQL_DATADIR=/usr/local/mysql /data [MySQL 數據庫文件存放目錄]
-DSYSCONFDIR=/etc [MySQL 配置文件所在目錄]
-DWITH_MYISAM_STORAGE_ENGINE=1 [添加 MYISAM 引擎支持 ]
-DWITH_INNOBASE_STORAGE_ENGINE=1 [添加 InnoDB 引擎支持 ]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 [添加 ARCHIVE 引擎支持 ]
-DMYSQL_UNIX_ADDR=/usr/local/mysql /mysql.sock [指定 mysql.sock 位置 ]
-DWITH_PARTITION_STORAGE_ENGINE=1 [安裝支持數據庫分區 ]
-DEXTRA_CHARSETS=all [使 MySQL 支持全部的擴展字符]
-DDEFAULT_CHARSET=utf8 [設置 MySQL 的默認字符集爲 utf8]
-DDEFAULT_COLLATION=utf8_general_ci [設置默認字符集校對規則 ]
-DWITH-SYSTEMD=1 [可使用 systemd 控制 mysql 服務]
-DWITH_BOOST=/usr/local/boost [指向 boost 庫所在目錄]
更多參數執行 [root@localhost mysql-5.7.13]# cmake . –LH
# make && make install
五、mysql執行命令加入系統環境變量
# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
# source /etc/profile
六、初始化
初始化完畢後在最後一行會顯示root用戶臨時密碼( A temporary password is generated for root@localhost:。。。。。)
# chown -R mysql:mysql /usr/local/mysql
# cd /usr/local/mysql/bin/
# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/
七、修改my.cnf配置文件
# cat /etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /usr/local/mysql/mysql.sock
log_error = /data/mysql/mysql-error.log
八、啓動mysql
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
# systemctl restart mysqld
九、登錄數據庫(密碼爲第6步初始化後最後一行所顯示的臨時密碼)
# mysql -uroot -p