1. 程式人生 > >LINUX 環境下原始碼方式安裝mysql5.6

LINUX 環境下原始碼方式安裝mysql5.6

1.下載mysql原始碼:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz

備註:至於想以什麼方式下載都無所謂,總之得到原始碼就可以了~

2.確認需要的開發工具的版本,都要滿足mysql安裝版本的需要

 Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.cmake 3.75+,gcc 4.21+,perl  if you intend to run test scripts 3.建立mysql的安裝目錄 mysql
mkdir mysql526

備註:一般在虛擬機器、測試環境、開發機、伺服器上安裝的時候都不會直接使用root許可權進行安裝,因為使用普通使用者安裝會降低伺服器的風險,但是同時也帶來了一個問題,就是對於預設的安裝路徑下我們沒有讀寫許可權,這時候按照官方簡易的文件安裝就會失敗,或者出現各種各樣的無法連線、無法啟動等錯誤

此處的方法是用普通使用者許可權進行安裝

4.建立幾個相應的資料夾:tmp, var, etc,

cd mysql526
mkdir tmp var etc

5.執行cmake建立makefile
cmake . -DCMAKE_INSTALL_PREFIX=/home/work/mysql526 -DEFAULT_CHARSET=utf8 -DEFAULT_COLLATION=utf8_general_ci 
-DMYSQL_UNIX_ADDR=/home/work/mysql526/tmp/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DTMPDIR=/home/work/mysql526/log/

引數介紹:
-DCMAKE_INSTALL_PREFIX:相當於安裝的根目錄,其餘的一些配置,都會安裝在PREFIX/下。比如PREFIX/BIN,等等
-DEFAULT_CHARSET:預設編碼
-DEFAULT_COLLATION=utf8_general_ci:預設排序方式
-DMYSQL_UNIX_ADDR=/home/work/mysql526/tmp/mysql.sock:連線mysql使用的socket檔案,此處很關鍵!
-DWITH_INNOBASE_STORAGE_ENGINE=1:使用innodb引擎
-DTMPDIR=/home/work/mysql526/log/:指定tmp資料夾路徑,一般tmp中包含mysql.sock,log,pid等配置
-MYSQL_TCP_PORT=3306:TCP/IP port number, and Unix socket file can be changed at server startup with the --basedir, --port, and --socket options for mysqld. Where applicable,

注:此處如果報錯:可以檢視CMakeCache.txt,CMakeFiles/CMakeError.logand CMakeFiles/CMakeOutput.logunder the build directory解決錯誤後,執行rm CMakeCache.txt,然後再次cmake重新配置 注:如果MYSQL_MAINTAINER_MODE 配置是enable的,它會將warn變成error,可以disable這個選項,再編譯 doc:If compilation fails, check whether the MYSQL_MAINTAINER_MODE option is enabled. This mode causes compiler warnings to become errors, so disabling it may enable compilation to proceed.

5.1cmake介紹:此處編譯使用的是cmake工具

下載地址:https://cmake.org/download/

https://cmake.org/files/v3.4/cmake-3.4.0-rc1.tar.gz

6.執行make編譯: make 注:如果此處出錯,需要先執行make clean,再執行rm CMakeCache.txt,然後在重新cmake----make 注:如果make失敗:並且提示瞭如下資訊的任意一種:表明make的版本過低,升級GNU的make去吧。3.75+ #1:make: Fatal error in reader: Makefile, line 18: Badly formed macro assignment #2:pthread.h: No such file or directory #3:make: file `Makefile' line 18: Must be a separator (: 7.執行安裝 make install 注:make install 也可以指定路徑,但是如果你已經在cmake的時候指定了-DCMAKE_INSTALL_PREFIX引數,就不要在這裡再指定了。。make install DESTDIR="/some/absolute/path" 8.準備mysql的配置檔案:關於my.cnf的配置請參考下一章,這裡先湊合用 cp support-files/my-default.cnf etc/my.cnf     //****my-default.cnf是空白的,都得自己配置,如果my-medium.cnf要是沒有,就去偷一個吧
或者cp /home/work/mysql526/support-files/my-medium.cnf /home/work/mysql526/etc/my.cnf 9.編輯my.cnf,配置相關引數的路徑
# The MySQL server
     26 [mysqld]
     27 port        = 3306
     28 /home/work/mysql526/tmp/mysql.sock
     29 log-error   =/home/work/mysql526/log/mysql.err
     30 pid-file    =/home/work/mysql526/tmp/mysql.pid

10.配置環境變數
TMPDIR=/home/work/mysql5/tmp/
MYSQL_UNIX_PORT=/home/work/mysql5/tmp/mysql.sock
export TMPDIR MYSQL_UNIX_PORT
11.資料初始化:需要Perl。如果沒有也需要安裝,yum install perl  然後還得安裝yum install perl-Data-Dumper 記得指定引數,要讀取我們剛剛配置的my.cnf配置檔案,否則白折騰了,user就是你的使用者名稱,資料初始化結束後,去data目錄下能看到多了test以外的資料檔案 scripts/mysql_install_db --defaults-file=/home/work/mysql526/etc/my.cnf --user=work --basedir=/home/work/mysql526/ --datadir=/home/work/mysql526/data/
13.安全 守護程序 啟動msyql ------ 至於為啥帶my.cnf引數,請參考下一章
--help :  帶my.cnf引數啟動,配置各種許可權     //**這個還必須要指定這個配置引數 /home/work/mysql526/bin/mysqld_safe --defaults-file=/home/work/mysql526/etc/my.cnf
14.設定密碼 1./home/work/mysql526//bin/mysqladmin -u root password 設定密碼:xxx123  
2./home/work/mysql526//bin/mysqladmin -u root -h cp01-vm-epc-wiseapp5.epc.com password 設定密碼:xxx123
15.執行product環境清理工作,提高安全性 在product環境執行:/home/work/mysql526//bin/mysql_secure_installation 16.配置指定的IP可以訪問:配置10.126.107.119使用root,xxx123連線, GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.126.107.119' IDENTIFIED BY 'xxx123' WITH GRANT OPTION; flush privileges;  //---別忘記了。。否則又蒙圈 注:For boolean options, the value may be specified as 1 or ON to enable the option, or as 0 or OFF to disable the option
18.常見問題:
1. 報錯:CMAKE_CXX_COMPILER-NOTFOUND 需要安裝g++ yum install g++ 2. 報錯:Curses library not found yum install ncurses-devel