mysql源碼安裝
我準備學下mysql的源碼,所以編譯和調試源碼是很重要的一部分。
好了廢話不多說。
我的環境是 CentOS-6.9-x86_64-minimal,這個可以在阿裏的源中直接下。
然後是安裝之前的準備工作
先裝好環境
yum update
yum -y install cmake
yum -y install bison
yum -y install library*
yum -y install libncurses5-dev
yum -y install g++
yum -y install kdelibs5-dev
yum -y install make
yum -y install gcc-c++
接著創建mysql的程序目錄,已經用戶和用戶組
mkdir -p /usr/local/mysql //安裝mysql
mkdir -p /usr/local/mysql/data //存放數據庫
groupadd mysql
useradd -r -g mysql mysql
裝好了這些環境後,在下載mysql的源碼,由於我想學騰訊的tMySQL,而他的版本又是MySQL5.5.24,所以我安裝的也是這個版本,你們可以自己選擇自己喜歡的版本安裝。
下載鏈接在這裏
MySQL源碼下載
wget https://downloads.mysql.com/archives/get/file/mysql-5.5.24.tar.gz
下載好之後解壓,並進入目錄
tar -xzvf mysql-5.5.24.tar.gz
cd mysql-5.5.24
然後執行
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
這些cmake參數的意思如下:
參數說明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安裝目錄
-DINSTALL_DATADIR=/usr/local/mysql/data //數據庫存放目錄
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校驗字符
-DEXTRA_CHARSETS=all //安裝所有擴展字符集
-DENABLED_LOCAL_INFILE=1 //允許從本地導入數據
然後,可能會出現如下錯誤
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:268 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeError.log".
按照提示是沒有安裝 ncurses-devel庫導致的,於是我們手動安裝ncurses-devel,並記得要刪除cmake緩存文件CMakeCache.txt,然後重新執行之前的命令。
yum -y install ncurses-devel
rm CMakeCache.txt
然後我們就可以make了,假如你的機器之前安裝過mysql然後又卸載了的話,記得將原來的配置文件刪掉
rm -rf /etc/my.cnf
make && make clean
然後,如果沒有錯誤的話,那麼安裝完成,接著來配置mysql
cd /usr/local/mysql
chown -R root:mysql . //把當前目錄中所有文件的所有者所有者設為root,所屬組為mysql
chown -R mysql:mysql data
cp support-files/my-medium.cnf /etc/my.cnf //將mysql的啟動服務添加到係統服務中
然後再利用mysql的腳本來創建數據庫
目錄在 /usr/local/mysql
scripts/mysql_install_db --user=mysql
然後配置mysql的環境變量
vi /root/.bash_profile
#######################################################
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib #將這一行添加進去
alias l='ls -lrht'
export PATH
######################################################
source /root/.bash_profile
然後就可以在/usr/local/mysql目錄下啟動mysql了
./bin/mysqld_safe --user=mysql &
然後打開另一個終端輸入
mysql -uroot mysql
就可以連接上了
最後更新:2017-10-28 13:41:53
上一篇:
阿裏雲VPC私網連接技術白皮書
下一篇:
HTTP協議
FormsAuthenticationTicket基於forms的驗證
一天學會PostgreSQL應用開發與管理 - 1 如何搭建一套學習、開發PostgreSQL的環境
Java NIO係列教程(五) 通道之間的數據傳輸
Spark SQL 物理執行計劃各操作實現
周鴻禕:做野狼而非哈士奇 移動互聯網尋“殺手”
C# dev gridcontrol “時間”字符串格式化
月球趣事——月球錯覺
【雲棲大會】國內五大高校與阿裏雲大學達成雲棲商學院戰略合作,培養雲計算高端管理人才
穀歌街景照片的另一種用途:預測總統大選結果
《vSphere性能設計:性能密集場景下CPU、內存、存儲及網絡的最佳設計實踐》一2.5 小結