Linux/Ubuntu下CMake編譯MySQL教程

來源:互聯網
上載者:User

使用Linux+Vim寫PHP簡直是一種享受。下面是我的Vim配置和安裝的外掛程式。

1. 下載MySQL 5.5.28源碼包
下載地址:http://www.mysql.com/downloads/mysql/#downloads

在MySQL下載頁面的下拉框選擇“Source Code”,然後選擇最下面的tar.gz格式,開始下載。wget開始可以使用:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz這個地址。

2. 添加MySQL使用者和組

 代碼如下 複製代碼

 sudo groupadd mysql 

 sudo useradd -r -g mysql mysql

3. 安裝一些需要的軟體

 代碼如下 複製代碼

sudo apt-get install cmake automake autoconf libtool gcc g++ bison

如果只安裝上面的擴充,編譯過程總會出現這樣的錯誤:-- 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.,則需要多安裝libncurses5-dev包。
sudo apt-get install libncurses5-dev


提示,為了保證速度,請更新Ubuntu源為最快的源:Ubuntu更新源推薦。

4. CMake編譯MySQL

 代碼如下 複製代碼

#建立目錄
sudo mkdir /data/mysql/
 
#開始編譯(注意下面的命令是一句,實際情況是沒有換行的,這裡為了方便添加註釋)
sudo cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安裝路徑
-DMYSQL_DATADIR=/data/mysql/            #資料檔案存放位置
-DSYSCONFDIR=/etc                       #my.cnf路徑
-DWITH_MYISAM_STORAGE_ENGINE=1          #支援MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1        #支援InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1          #支援InnoDB引擎
-DWITH_READLINE=1                       #快速鍵功能(我沒用過)
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      #串連資料庫socket路徑
-DMYSQL_TCP_PORT=3306                   #連接埠
-DENABLED_LOCAL_INFILE=1                #允許從本地匯入資料
-DWITH_PARTITION_STORAGE_ENGINE=1       #安裝支援資料庫分區
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk   #安裝需要的字元集
-DDEFAULT_CHARSET=utf8                  #預設字元
-DDEFAULT_COLLATION=utf8_general_ci     #預設字元集
 
#make安裝
sudo make && make install

5. 配置MySQL
這一步中需要注意的是my.cnf的載入順序,Linux優先順序從高到低/etc/my.cnf->/etc/mysql/my.cnf->SYSCONFDIR/my.cnf->$MYSQL_HOME/my.cnf,高優先順序的my.cnf設定會覆蓋低優先順序的my.cnf,所以一般把config檔案copy到etc中即可。

 代碼如下 複製代碼

#如果/etc下沒有my.cnf
sudo cp support-files/my-medium.cnf /etc/my.cnf
 
#設定許可權
sudo chmod +x /usr/local/mysql
sudo chown -R mysql.mysql /usr/local/mysql
 
#配置開機自啟動
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo chkconfig –list
sudo update-rc.d mysql defaults `/sbin/chkconfig –add mysql; /sbin/chkconfig mysql on`
sudo chkconfig –list mysql
 
#修改my.cnf配置
vim /etc/my.cnf
 
#[mysqld] 添加:
datadir=/data/mysql
default-storage-engine=MyISAM
 
#以下可選:
log-error = /data/mysql/error.log
pid-file = /home/mysql/mysql.pid
user = mysql
tmpdir = /tmp
 
#安裝預設資料表
/usr/local/mysql/scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/da/mysql –user=mysql
 
#啟動MySQL
/usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &
#或者
/etc/init.d/mysql start (service mysql start)
 
#測試MySQL是否啟動
# 1)查看是否有進程mysql
ps -ef | grep mysql
# 2)查看連接埠是否運行
netstat -tnl | grep 3306
# 3)讀取mysql版本資訊
mysqladmin version
##安裝成功,Thanks God!

到此MySQL編譯完成,如果這個時候MySQL無法啟動,那麼多問題基本上都處在my.cnf的位置和設定上。最後進入MySQL修改root使用者的密碼,當前密碼為空白:

 代碼如下 複製代碼

UPDATE user SET password=PASSWORD("new password") WHERE user='root';
FLUSH PRIVILEGES;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.