2015年10月26日 星期一

[研究] MySQL 5.7 安裝 (CentOS 7.1 x64) (mysql-5.7.9.tar.gz)

[研究] MySQL 5.7 安裝 (CentOS 7.1 x64) (mysql-5.7.9.tar.gz)

2015-10-23
2015-10-28 修訂

CentOS 7.1 預設的 MySQL/mariadb 資料庫是  MariaDB 1:5.5.44,本篇測試安裝目前最新版的 MySQL 5.7.x 資料庫。

MySQL Installer 5.7.9
http://www.mysql.com/downloads/mysql/#downloads
檔案:mysql-5.7.9.tar.gz
免費註冊,登入後才可以下載
(下拉選單選 Source Code,到最後一個 Generic Linux (Architecture Independent), Compressed TAR Archive)


官方安裝參考 ( 實際上會碰上很多問題)
http://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

(要看 100% 原尺寸圖,可以 click 圖片)

下面為切換 su 在 /root 目錄下安裝情況
wget 若沒安裝可用 yum -y install wget 安裝

安裝步驟


mv   /etc/my.cnf   /etc/my.cnf.old

cd  /usr/local/src

# 官方沒說 yum 要安裝些甚麼,但實際需要
yum -y install  gcc  gcc-c++  ncurses*  cmake  bison 

groupadd mysql
useradd -r -g mysql mysql
tar zxvf  mysql-5.7.9.tar.gz
cd  mysql-5.7.9

# 官方說只用 cmake 指令就可,實際不行
cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0

# 如果是虛擬機器,建議 CPU 和 RAM 盡量多給些,很耗時間
make

make install

cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
yum -y install perl-Data-Dumper  perl-XML-Dumper
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup             
chown -R root .
chown -R mysql data
cp support-files/mysql.server /etc/init.d/mysql.server

#啟動
bin/mysqld_safe --user=mysql &
# 或  service   mysql.server   start




補充說明

1.  yum 問題,官方網站沒有說明要安裝那些,單看錯誤訊息有時不好判斷如何能真正解決

2. boost 問題

安裝過程需要 boost,CentOS 7.1 可用 yum 安裝 boost 1.53 版,但 mysql 5.7 需要 1.59 版才行

[root@localhost Modules]# find / -name boost
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/share/doc/boost-doc-1.53.0/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/doc/test/gold/boost
/usr/share/doc/boost-doc-1.53.0/libs/algorithm/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/libs/algorithm/doc/html/header/boost
/usr/share/doc/boost-doc-1.53.0/libs/functional/overloaded_function/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/libs/icl/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/libs/icl/doc/html/header/boost
/usr/share/doc/boost-doc-1.53.0/libs/numeric/odeint/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/libs/numeric/odeint/doc/html/header/boost
/usr/share/doc/boost-doc-1.53.0/libs/pool/doc/html/boost
/usr/share/doc/boost-doc-1.53.0/libs/pool/doc/html/header/boost
/usr/include/boost
/usr/include/boost/chrono/typeof/boost


/usr/local/src/mysql-5.7.9/include/boost_1_59_0/boost

編譯過程曾嘗試參考下面語法



cmake -DCMAKE_INSTALL_PREFIX=$TARGET \
    -DBoost_NO_BOOST_CMAKE=TRUE \
    -DBoost_NO_SYSTEM_PATHS=TRUE \
    -DBOOST_ROOT:PATHNAME=$TARGET \
    -DBoost_LIBRARY_DIRS:FILEPATH=${TARGET}/lib
用下面命令執行 cmake 時候用 mysql 5.7 提供的 boost,但是無用

cmake -DBoost_NO_BOOST_CMAKE=TRUE \
    -DBoost_NO_SYSTEM_PATHS=TRUE \
    -DBOOST_ROOT:PATHNAME=$TARGET \
    -DBoost_LIBRARY_DIRS:FILEPATH=/usr/local/src/mysql-5.7.9/include/boost_1_59_0/boost/libs
自己去抓 boost_1_59_0.tar.gz 也不行,最後是 cmake 時候設定參數下載

3. cmake 問題

# 官方說只用 cmake 指令就可,實際不行
cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0

4. cmake 與 yum 問題

某些套件在 yum 時候若沒安裝,到 cmake 時候才發現,這時候才 yum 安裝來不及,cmake 仍會失敗;解決方法是把整個 mysql 目錄砍掉,yum 安裝後,重新再 cmake 才行
rm   -fr   /usr/local/src/mysql-5.7.9

5. make 問題

make 過程可能幾乎停住不動,下面訊息曾花了 1 小時也依然顯示
[ 54%] Building CXX object sql/CMakeFiles/sql.dir/item_geofunc.cc.o
後來 PowerOff,把 CPU 從 1 改為4,把 RAM 從 1GB 改為 4GB,此一條訊息可在約  5分鐘後通過。 (整個 make 還是頗耗時間)


啟動 MySQL 可用

[root@localhost mysql]#  /usr/local/mysql/bin/mysqld_safe --user=mysql &

Starting MySQL SUCCESS!

(注意,是 mysql.server,不是 mysqld )
[root@localhost mysql]#  service   mysql.server   start

Starting MySQL SUCCESS!


檢查一下

[root@localhost mysql]# ps aux | grep mysql
root      11552  0.0  0.0 113252  1604 pts/0    S    Oct23   0:00 /bin/sh bin/mysqld_safe --user=mysql
mysql     11634  0.0 13.1 2158748 509336 pts/0  Sl   Oct23   0:37 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/localhost.localdomain.err --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
root      91180  0.0  0.0 112644   960 pts/0    S+   08:30   0:00 grep --color=auto mysql

[root@localhost mysql]#


停止 MySQL

[root@localhost mysql]#  service    mysql.server   stop

Shutting down MySQL..151026 08:31:09 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
 SUCCESS!
[1]+  Done                    bin/mysqld_safe --user=mysql  (wd: /usr/local/mysql)
(wd now: /etc/init.d)


或把 Process ID 用 kill -9 砍掉
[root@localhost mysql]# kill -9  11552

(完)

相關文章

[研究] MySQL 5.7 安裝 (CentOS 7.1 x64) (mysql-5.7.9.tar.gz)
http://shaurong.blogspot.com/2015/10/mysql-57-centos-71-x64-mysql-579targz.html

[研究] MySQL 5.7 安裝 (mysql-installer-community-5.7.9.0.msi) Developer
http://shaurong.blogspot.tw/2015/10/mysql-57-mysql-installer-community.html

[研究] mysql-5.6.25.tar.gz 安裝 (CentOS 7.1 x86_64)
http://shaurong.blogspot.com/2015/06/mysql-5625targz-centos-71-x8664.html

[研究] mysql-5.6.20.tar.gz 安裝 (CentOS 7.0 x86_64)
http://shaurong.blogspot.com/2014/08/mysql-5620targz-centos-70-x8664.html

[研究] mysql-5.6.15.tar.gz 安裝(CentOS 6.5 x64)
http://shaurong.blogspot.tw/2014/01/mysql-5615targz-centos-65-x64.html
http://forum.icst.org.tw/phpbb/viewtopic.php?f=21&t=80713

[研究] MySQL 5.6.15 安裝(rpm)(CentOS 6.5 x64)
http://shaurong.blogspot.com/2014/01/mysql-5615-rpmcentos-65-x64.html

[研究] MySQL Community 5.6.15 版安裝(yum) (CentOS 6.5 x64)
http://shaurong.blogspot.com/2014/01/mysql-community-5615-tgz-centos-65-x64.html

[研究] 4主機 MySQL Cluster 7.3.3 架設(CentOS 6.5 x64)
http://shaurong.blogspot.tw/2014/01/4-mysql-cluster-7.html

[研究] 4主機 MySQL Cluster 7.2.10.1 架設
http://shaurong.blogspot.tw/2013/02/4-mysql-cluster-7210-1.html

[研究] 2主機 MySQL Cluster 7.2.10-1 架設
http://shaurong.blogspot.com/2013/02/2-mysql-cluster-7210-1.html

[研究] 4主機 MySQL Cluster 7.0.9 架設
http://forum.icst.org.tw/phpbb/viewtopic.php?f=10&t=17903

[研究] 雙主機 MySQL Cluster 7.0.9架設
http://forum.icst.org.tw/phpbb/viewtopic.php?f=10&t=17904

[研究] MariaDB 5.5 安裝(yum)(CentOS 6.3 x64)
http://shaurong.blogspot.com/2013/02/mariadb-55-yum-centos-63-x64.html

[研究] CentOS 5.4 x86 上 MySQL 資料庫同步(Replication)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17824

[研究] mariadb-5.1.42 (tar.gz)(瑪利亞資料庫, MySQL) 安裝 (CentOS 5.4)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17988

[研究] mariadb-5.2.4-Linux-i686.tar.gz 安裝 (CentOS 5.5 x86)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=19434

[研究] mysql-5.5.14.tar.gz 安裝(失敗)(CentOS 6.0 x86)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=20252

[研究] mysql-5.5.8.tar.gz 安裝(CentOS 5.5 x86)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=19214

[研究] mysql-5.5.8.tar.gz 安裝(Fedora 14 x86)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=19215

[研究] 每天自動備份 MySQL 方法
http://forum.icst.org.tw/phpbb/viewtopic.php?t=14972

[研究] 雙主機 MySQL Cluster 7.0.9 架設


3 則留言:

  1. 補充幾點給大大,1.CMake失敗,只要刪除Source目錄中的CMakeCashe.txt就可以了,不用刪全部的Source
    2.以mysql 5.7.11為例,目前配合用的boost是1.59版,若在可以連外部網路的情況則用參數-DDOWNLOAD_BOOST=1來做下載,-DWITH_BOOST=/usr/local/src/來做為下載目錄(mysql會自動連網去下載boosts 1.59 的source)。若在不能使用網路的情形下,請自行去下載boost_1_59_0.tar.gz並放在想放的資料夾中,因此不需要-DDOWNLOAD_BOOST的參數,直接使用-DWITH_BOOST=/usr/local/src/boost_1_59_0.tar.gz 在執行時,mysql cmake會自動進行解壓縮的部份而完成boosts source的驗證,之後就可以開始make囉~~~

    回覆刪除
  2. 測試了一下,目前 CentOS 7.2 上 yum 安裝 boost 仍是 1.53 版

    回覆刪除