1. 程式人生 > >centos7原始碼安裝mysql5.7.19

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/

--解壓存放的目錄隨便,但是在後面cmake的時候需要指定這個目錄

如果伺服器無法聯網,則可以在我的百度雲下載相關的軟體然後發到伺服器上面。連線永久有效。

希望完成編譯安裝的朋友能給個好評。

直接下載這個安裝包解壓即可,裡面包括boost壓縮包,解壓後有一個mysql5.7.20的資料夾和一個boost的安裝包,因為此文是編譯安裝20的時候更新,所以上傳的是20的 安裝包。其實步驟是一模一樣的。

連結:https://pan.baidu.com/s/1i5u3fzZ 密碼:ny7e

2、安裝過程(原始碼包安裝)

1》建立相應的使用者組和資料目錄並且授權(我的環境安裝如下)

#useradd mysql--

建立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=mysql5.7mysql_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命令登陸的