mysql5.6源码编译_MySQL 5.6 源码编译安装
前言
本文適合對于 mysql 有調試需求、或者在國產化平臺上通過源碼方式安裝 mysql 數據庫的場景;并且標題雖然指明是 mysql 5.6 版本,5.7 版本也基本適用,只是 cmake 編譯參數與初始化數據庫時稍有不同。
文中安裝過程較為精簡,希望對于閱讀此文者有所幫助之外,還能適當加以思考;另外,由于本文是個人實踐過程所得,純粹是為了記錄,文中如果出現錯誤之處,或者實踐過程中發現問題,還請聯系本人修正。
mysql 5.6 源碼編譯安裝
一、mysql 源碼編譯需要依賴 ncurses 庫,需要檢查是否已安裝 libncurses-devel 包,如果未安裝,可以使用 yum 進行安裝。此次 Kylin Linux 使用源碼包編譯安裝:
wget http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz
tar -zxvf ncurses-5.9.tar.gz
cd ncurses-5.9/
# 一般 linux 系統,--build 參數指定為 x86_64 即可
# 國產系統中,hostnamectl 可以查看CPU架構,如果是 arm64/aarch64,則需要使用以下命令
./configure --with-shared --without-debug --without-ada --enable-overwrite --build=arm-gnu-linux
# 或者是下面這個命令:
# ./configure --with-normal --without-debug --without-ada --enable-overwrite -build=arm
make -j4
make install
# 注意:如果編譯過程中出錯,則可能需要修改 curses.tail 文件中帶 mouse_trafo 的行,去掉注釋
二、mysql 一般用 cmake 編譯較為方便,所以先源碼編譯安裝 cmake:
wget https://github.com/Kitware/CMake/releases/download/v3.14.6/cmake-3.14.6.tar.gz
tar -zxvf cmake-3.14.6.tar.gz
cd cmake-3.14.6/
./configure && gmake -j4 && gmake install
(以下命令檢查是否安裝完成)
cmake --version
三、源碼安裝 mysql-5.6.45.tar.gz + boost:
由于 mysql 5.7 源碼包在 Kylin Linux 上編譯失敗,這里用 mysql 5.6 安裝。mysql 源碼還依賴于 boost,故需要下載兩個包,即 mysql 5.6 + boost。boost 可以從其官網下載,本人偷懶下載了 mysql 官網的 mysql-boost-5.7.27.tar.gz 包,里面包含了 boost,然后拷貝到 mysql-5.6 的解壓目錄里。
# ---- 創建 mysql 用戶(略)
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz
tar -zxvf mysql-5.6.45.tar.gz
cp -R mysql-5.7.27/boost/ mysql-5.6.45/ # -------> 從 mysql-boost-5.7.27.tar.gz 的解壓縮目錄里拷貝過來
cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql/data -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make -j8
make install
cd /var/lib/
chown mysql:mysql ./mysql -R
四、創建 my.cnf 配置文件
cd /var/lib/mysql
cp support-files/my-default.cnf /etc/my.cnf
chown mysql:mysql /etc/my.cnf
vi /etc/my.cnf
my.cnf 參考內容如下:
[mysqld]
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
#bind-address=0.0.0.0
port=3306
socket=/tmp/mysql.sock
innodb_file_per_table=1
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
symbolic-links=0
max_connections=1000
log-error=/var/lib/mysql/mysql.log
pid-file=/var/lib/mysql/mysql.pid
五、初始化 mysql 數據庫與配置
cd /var/lib/mysql
cp support-files/mysql.server /etc/init.d/mysql
chown mysql:mysql /etc/init.d/mysql
cp bin/* /usr/bin/
chkconfig --add mysql
chkconfig mysql on
mkdir data
chown mysql:mysql data/
./scripts/mysql_install_db --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data --defaults-file=/etc/my.cnf --random-passwords
# MySQL 5.7 初始化過程如下:
# ./bin/mysqld --defaults-file='/etc/my.cnf' --initialize --user=mysql
/etc/init.d/mysql start # 正常情況下啟動會出現 Success,否則啟動失敗
# 或者 service mysql start
cat /root/.mysql_secret # ---> 查看隨機密碼(僅限 5.6 版本,5.7 版本的初始隨機密碼位于 log-error 指定的日志文件中)
mysql -uroot -pXdRmLO1T1pRRM7Jc # 登陸后需要修改密碼
# 最后開放防火墻端口、遠程連接權限等
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mysql5.6源码编译_MySQL 5.6 源码编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python创建一个类初始化两个变量na
- 下一篇: linux cmake编译源码,linu