centos7原始碼安裝mysql5.7.19
centos7原始碼包安裝mysql5.7
5.7.20安裝方法和5.7.19的一樣。
1、安裝前準備
清空環境、安裝相應的軟體包
1>關閉防火牆和SELinux
2>配置yum源(阿里雲,centos163等等都行)
#yum -y install cmake ncurses-devel--如果不安裝這兩個,後面編譯提示錯誤再安裝也可以。
如果系統版本過低需要安裝更高版本的cmake才可以完成編譯,下載之後
#wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
#tar -xf boost_1_59_0.tar.gz
-C /usr/src/
如果伺服器無法聯網,則可以在我的百度雲下載相關的軟體然後發到伺服器上面。連線永久有效。
希望完成編譯安裝的朋友能給個好評。
直接下載這個安裝包解壓即可,裡面包括boost壓縮包,解壓後有一個mysql5.7.20的資料夾和一個boost的安裝包,因為此文是編譯安裝20的時候更新,所以上傳的是20的 安裝包。其實步驟是一模一樣的。
連結:https://pan.baidu.com/s/1i5u3fzZ 密碼:ny7e
2、安裝過程(原始碼包安裝)
1》建立相應的使用者組和資料目錄並且授權(我的環境安裝如下)
#useradd mysql--
#mkdir /mysql/etc/ -p--建立安裝目錄和配置檔案存放的目錄
2》下載原始碼包並解壓軟體到/usr/src(隨便一個目錄也行)
進入mysql官網:https://dev.mysql.com/
選擇Downloads>>MySQL
Community Edition (GPL)>>Community (GPL)Downloads >>MySQL Community Server (GPL)>>download
作業系統:SourceCode
作業系統版本:Generic_Linux
下載:mysql-5.7.19.tar.gz
#tar -xf mysql-5.7.19.tar.gz -C /usr/src/--解壓安裝包到/usr/src/目錄下面
如果mysql下面沒有my.cnf檔案則建立/mysql/etc/檔案來存放my.cnf檔案,也可以直接在/mysql目錄下面建立my.cnf配置檔案
3》建立編譯指令碼
#cd /usr/src/mysql-5.7.19/
#vim cmake.sh
#!/bin/bash
cmake. \
-DCMAKE_INSTALL_PREFIX=/mysql \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DSYSCONFDIR=/mysql/etc \
-DMYSQL_UNIX_ADDR=/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/src \--如果不加這兩行則下面會報錯,你再新增也行,這是boost存放的路徑
-DMYSQL_USER=mysql
執行指令碼:
#bash cmake.sh
可能出現的錯誤1:
CMakeError at cmake/boost.cmake:81 (MESSAGE):
Youcan download it with-DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
ThisCMake script will look for boost in <directory>. If it is notthere,
..........
..........
CallStack (most recent call first):
cmake/boost.cmake:238(COULD_NOT_FIND_BOOST)
CMakeLists.txt:491(INCLUDE)
--Configuring incomplete, errors occurred!
Seealso "/usr/src/mysql-5.7.19/CMakeFiles/CMakeOutput.log".
Seealso "/usr/src/mysql-5.7.19/CmakeFiles/CmakeError.log".
原因:沒有找到boost路徑,mysql5.6之後需要新增下面兩個引數,現在安裝5.7,則需要下載boost,然後解壓到相應的路徑。
解決:在腳本里面新增下面兩行
-DDOWNLOAD_BOOST=1\
-DWITH_BOOST=/usr/src\
下載解壓boost到/usr/src/(第1步安裝前準備有說,可以回去看)
可能出現的錯誤2:找不到cmake的命令。
原因:沒安裝cmake軟體。
解決:編譯安裝
編譯安裝cmake 2)解壓tar zxvf cmake-2.8.12.2.tar.gz 3)編譯安裝 cd cmake-2.8.12.2 ./bootstrap gmake gmake install 4)安裝完成之後,需要指定編譯器cmake的命令位置。即: vim cmake.sh #!/bin/bash /data/cmake-2.8.12.2/bin/cmake . \ --指定cmake的位置 -DCMAKE_INSTALL_PREFIX=/data/mysql/mysql \ .............cmake錯誤之後需要刪除已經生存的快取檔案:
#rm -rf CmakeCache.txt
#bash cmake.sh--重新執行指令碼
提示下面的資訊則算安裝成功:
CMakeWarning:
Manually-specifiedvariables were not used by the project:
MYSQL_USER
--Build files have been written to: /usr/src/mysql-5.7.19
4》安裝mysql,先編譯,後安裝
#make--編譯時間會很長
#make install
3、安裝後配置
1>手動編寫my.cnf配置檔案
#vim /mysql/my.cnf
[mysqld]
port=3306
dasedir=/mysql
datadir=/mysql/data
socket=/mysql/mysql.sock
user=mysql
[client]
socket=/mysql/mysql.sock----告訴client端登入進來去哪裡找sock檔案
2>建立相關使用者及目錄,並修改許可權
3>初始化資料庫
#./bin/mysqld --initialize --user=mysql –datadir=/mysql/data
如果直接用上面這條命令將不會報下面的錯誤。5.6初始化命令為./bin/mysql_install_db--user=mysql,5.7的mysql_install_db檔案在bin目錄下,但是5.7將不再使用這個檔案初始化資料庫,而是使用mysqld–initialize代替。
成功之後會提示下面的資訊:其中hcs5iEKHnq!I為資料庫初始化密碼。
.................
017-09-27T01:39:09.384918Z0 [Warning] Gtid table is not ready to be used. Table'mysql.gtid_executed' cannot be opened.
2017-09-27T01:39:09.405254Z1 [Note] A temporary password is generated for [email protected]:hcs5iEKHnq!I
可能出現的問題1:
[ERROR] The data directory needs to be specified.
原因:沒有指定date目錄
解決:./bin/mysql_install_db--user=mysql –datadir=/mysql/data
再次初始化之後可能出現的問題2:
[ERROR] The data directory '/mysql/data' already exist and is not empty.
解決:刪除data檔案,重新建立,並給與mysql許可權
cd /mysql
rm -rf data
mkdir data
chown -R mysql. data
可能出現的問題3:
[ERROR]Thebootstrap log isn't empty:
Errormessage file '/usr/share/mysql/english/errmsg.sys' had only 886 errormessages,
原因:可以看到mysql_install_dbis deprecated,說不贊同使用mysql_install_db,推薦使用的方法是:Pleaseconsider switching to mysqld --initialize ,Pleaseconsider using --initialize instead
解決:#./bin/mysqld --initialize --user=mysql --datadir=/mysql/data
4>啟動服務
將suport檔案下面的啟動檔案拷貝到啟動目錄下面,並修改啟動檔案
#cd /mysql
#cp support-filescd/mysql.server /etc/init.d/mysql
#vim /etc/init.d/mysql
basedir=/mysql
datadir=/mysql/data
#systemctl start mysql
可能出現的問題:
Failedto start mysql.service: Unit not found.
原因:找不到服務
解決:
#systemctl enable mysql
mysql.serviceis not a native service, redirecting to /sbin/chkconfig.
Executing/sbin/chkconfig mysql on --提示執行下面命令
#/sbin/chkconfig mysql on
再次啟動mysql:
#systemctl start mysql
5>登入
#mysql -u root -S /mysql/mysql.sock -p'hcs5iEKHnq!I' --密碼-p必須加單引號:-p'密碼',或者利用互動式輸入密碼進入
注意:如果不能用mysql命令登陸的