cmake編譯mysql
設置linux自動匹配環境變數
1.$su #su進入root
#vi /etc/profile
在文件末尾加上下列語句:
PATH=$PATH:/sbin #在PATH變數後追加/sbin目錄
export PATH=$PATH:/sbin #設置變數為全局的
保存並退出。
退出root並在終端運行
$source /etc/profile #該命令的作用是重新執行剛修改的初始化文件,使之立即生效,而不必注銷並重新登好了在終端中輸入ifconfig 創建用戶和組
groupadd mysql // 建一個msyql的用戶和組
useradd -g mysql mysql -s /usr/sbin/nologin
mkdir /usr/local/mysql // 創建目錄
mkdir /usr/local/mysql/data // 數據倉庫目錄
安裝mysql
tar -zxvf mysql-5.5.14.tar.gz
cd mysql-5.5.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
PS: cmake的時候,參數可以不用那麼多,只要一個-DCMAKE_INSTALL_PREFIX=/usr/local/mysql就行了,我們可以在 my.cnf裡面配置。[mysqld]中的內容,看看你後的my.cnf有沒有這些設置,有就不用了在設置了。
make && make install
如果需要更改配置,則:
make clean
rm -f CMakeCache.txt
復制配置文件
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
設置許可權
chmod +x /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
配置開機自啟動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --list
//update-rc.d mysql defaults (/sbin/chkconfig --add mysql ; /sbin/chkconfig mysql on)
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
修改my.cnf配置
gedit /usr/local/mysql/my.cnf
[mysqld] 添加:
datadir=/usr/local/mysql/data
default-storage-engine=MyISAM
以下可選:
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/mysql.pid
user = mysql
tmpdir = /tmp
安裝默認數據表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
啟動MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
最後的「&」表示在後台運行,或者使用 /etc/init.d/mysql start (service mysql start)啟動
設置MYSQL命令行路徑
mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時,系統在/usr/bin下面查此命令
解決辦法是: ln -s /usr/local/mysql/bin/mysql /usr/bin
測試MySQL是否啟動
1)查看是否有進程mysql
ps -ef | grep mysql
2)查看埠是否運行
netstat -tnl | grep 3306
3)讀取mysql版本信息
/usr/local/mysql/bin/mysqladmin version
至此,MySQL安裝完成。
三、錯誤解決
1.libstdc++.so依賴問題:使用命令yum install gcc
② cmake安裝mysql編譯提示錯誤,錯誤提示如下,請大家指教,謝謝!
錯誤提示里說你的計算機上沒有一個可用的Boost庫或版本太低,MySQL需要不低於Boost 1.57.0的版本。您應該嘗試下載一個Boost,並且完成編譯。
您應該會得到上面圖片中的大部分文件,除了幾個我自己添加的輔助編譯的腳本。
完成之後請再嘗試重新編譯MySQL。
附註:編譯後生成的二進制庫保存在Boost根目錄下stagelib中,請根據MySQL的編譯步驟中的指示填寫在Makefile裡面或者加入環境變數(具體的我不太清楚,需要您視具體情況而定)。
③ cmake怎樣編譯安裝mysql
用cmake的應該是mysql5.5的版本,之前都是用make的。我安裝的使用應該沒有使用過.(點)。linux下作為參數傳遞給命令的.(點)一般代表當前目錄
④ linux使用cmake編譯mysql,提示錯誤,請高手幫忙解答,謝謝
手動創建
/application/mysql-5.5.32/data
目錄後再重新編譯試試
⑤ mysql為什麼要用cmake編譯
1.prepare階段,redo log落盤前,mysqld crash
2.prepare階段,redo log落盤後,binlog落盤前,mysqld crash
3.commit階段,binlog落盤後,mysqld crash
對於第一種情況,由於redo沒有落盤,毫無疑問,事務的更新肯定沒有寫入磁碟,資料庫的一致性受影響;
⑥ Mysql5.5.30使用Cmake編譯不通過,報出錯誤,該如何解決
應該是版本下載錯誤
⑦ MySQL cmake編譯時這些參數是什麼意思
MySQL cMake 常規參數介紹
-DCMAKE_INSTALL_PREFIX= 指向mysql安裝目錄
-DINSTALL_SBINDIR=sbin 指向可執行文件目錄(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql數據文件目錄(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目錄(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目錄(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man 指向man文檔目錄(prefix/share/man)
-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安裝目錄(prefix/share)
-DINSTALL_LIBDIR=lib/mysql 指向對象代碼庫目錄(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql 指向頭文件目錄(prefix/include/mysql)
-DINSTALL_INFODIR=share/info 指向info文檔存放目錄(prefix/share/info)
prefix官方推薦設為/usr
類型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想啟用某個引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某個引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DWITH_READLINE=1 啟用readline庫支持(提供可編輯的命令行)
-DWITH_SSL=system 啟用ssl庫支持(安全套接層)
-DWITH_ZLIB=system 啟用libz庫支持(zib、gzib相關)
-DWTIH_LIBWRAP=0 禁用libwrap庫(實現了通用TCP包裝的功能,為網路服務守護進程使用)
-DMYSQL_TCP_PORT=3306 指定TCP埠為3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路徑
-DENABLED_LOCAL_INFILE=1 啟用本地數據導入支持
-DEXTRA_CHARSETS=all 啟用額外的字元集類型(默認為all)
-DDEFAULT_CHARSET=utf8 指定默認的字元集為utf8
-DDEFAULT_COLLATION=utf8_general_ci 設定默認排序規則(utf8_general_ci快速/utf8_unicode_ci准確)
-DWITH_EMBEDDED_SERVER=1 編譯嵌入式伺服器支持
-DMYSQL_USER=mysql 指定mysql用戶(默認為mysql)
-DWITH_DEBUG=0 禁用debug(默認為禁用)
-DENABLE_PROFILING=0 禁用Profiling分析(默認為開啟)
-DWITH_COMMENT='string' 一個關於編譯環境的描述性注釋
⑧ 怎麼查mysql5.5,用cmake安裝時的編譯參數
# cd /usr/local/mysql5.5/docs
# vim INFO_BIN (其中 Pointer size: 4 一行之後的內容就是所要的參數,需要注意的是,這里的參數的書寫格式並不是在執行 cmake 命令時參數的標准格式 ,使用的時候要去掉 :BOOL或 PATH: 等字元)
===== Information about the build process: =====
Build was run at 2014-09-13 23:14:29 on host 'rhel5-8-1.breeze.com'
Build was done on Linux-2.6.18-308.el5 using i686
Build was done using cmake 3.0.2
===== Compiler flags used (from the 'sql/' subdirectory): =====
# compile C with /usr/bin/cc
# compile CXX with /usr/bin/c++
C_DEFINES = -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DMYSQL_SERVER
CXX_DEFINES = -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DMYSQL_SERVER
Pointer size: 4
===== Feature flags used: =====
-- Cache values
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql5.5
COMMUNITY_BUILD:BOOL=ON
⑨ cmake編譯mysql5.5出錯:Unknown CMake command "CHECK_LIBRARY_EXISTS".
./configure ----prefix=/cmake
你都用 --prefix ,而且還是指定到自定義目錄的方式了。還來 XXOO 的說這個指定目錄才能運行的問題……
哎……
1、make uninstall ,不過不是所有的都支持
2、export PATH=/cmake/bin:$PATH
3、我記得 bootstrap 是某個項目管理程序的控制腳本,用來生成編譯環境的。configure 好像就歸他生成,但一般軟體項目發布後都會生成好足夠用的環境,所以不一定需要這個東西。
關於 cmake ,我想說你的系統難道就沒有隻能用的 make 嗎?
⑩ linux 如何編譯安裝mysql
使用binary進行安裝,文件名mysql-standard-5.0.18-linux-i686-glibc23.tar.gz
[1]將上述文件解壓到某處,並將MySQL所以目錄名改為mysql,結果應如/home/xxx/mysql
[2]根據mysql目錄下的INSTALL-BINARY文件來進行安裝
// 加用戶組mysql,以及用戶mysql;該命令無需修改
shell> groupadd mysql
shell> useradd -g mysql mysql
// 以下三步的主要目的是為MySQL解壓目錄做一個鏈接,放到usr/local目錄中
// 首先是進入/usr/local目錄;該命令無需修改
shell> cd /usr/local
// 這一步可以不需要,因為已經解壓了
shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
// 做一個到/home/xxx/mysql的鏈接,放在/usr/local中,該鏈接的名字是mysql。
// 該命令修改為ln -s /home/xxx/mysql mysql
shell>
ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
// 進入/home/xxx/mysql目錄,/usr/local/mysql是到/home/xxx/mysql的鏈接
shell>
cd mysql
// 對MySQL進行初始化(如果以前已經安裝過MySQL,這一步可以簡略);該命令無需修改
shell> scripts/mysql_install_db --user=mysql
// 變更所有權;該命令無需修改
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
// 啟動MySQL伺服器;該命令無需要修改
shell> bin/mysqld_safe --user=mysql &
[3]進入MySQL應用環境
進入mysql目錄下的bin目錄,運行命令./mysql -u root
-p,此時將出現password:(要求輸入密碼),但默認情況下root用戶沒有密碼,所以回車即可。此時將進入MySQL界面,當然仍然只是個命令行窗口而以。
[4]簡單使用MySQL
在MySQL環境中運行命令show databases;,將會顯示已經有的資料庫(如test);運行命令use test,將進入test資料庫...
注意:如果在運行./mysql -u root -p之後,報
Can't connect to local MySQL server through socket '/tem/mysql.sock'
的錯誤,那麼可能有以下幾種情況:
[1]mysql.sock並不在/tmp目錄下,而是在其它某個目錄下(如,/var/lib/mysql目錄)。這時只需要將這個mysql.sock做鏈接到/tmp目錄下,運行命令:
ln -s MYSQL.SOCK_PATH /tmp/mysql.sock
[2]在同學的筆記本的Linux中,會在/tmp下生成mysql.sock,但重新啟動Linux後,該文件被刪除。這時也可以用情況2中的解決方法,或者每次都運行命令:./mysqld_safe --user=mysql &