mysql5.7安裝步驟(linux下源碼編譯安裝)

目錄

 

綜述:

安裝依賴包

安裝過程

1.檢查m4是否安裝

2.安裝gmp

3.安裝mpfr

4.安裝mpc

5.安裝gcc

6.安裝cmake

7.安裝boost_1_59

8.安裝mysql

9.初始化mysql

mysql的啓停/登錄

問題解決


綜述:

最近在linux系統搭建MySQL數據庫,需要搭建5.7的版本,過程中也踩了不少坑,把安裝的過程做個分享,希望大家少踩坑。

本次安裝是安裝的msyql5.7.12 的版本,採用的是源碼編譯安裝的方式

切記:內存至少要大於2G

取包鏈接  要把裏面的包需要全部取下來
提取碼:jz0l 

安裝依賴包

首先要安裝依賴包,這些依賴包用來安裝我們等會需要安裝的工具

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

 

安裝過程

1.檢查m4是否安裝

有些環境這個m4的包是沒有安裝的,需要先檢查一下,如果沒有安裝則需要先安裝m4包

rpm -qa |grep m4

沒有結果則表示沒有安裝

tar -xvf m4-1.4.18.tar.gz

chown -R root:root m4-1.4.18          ## -->如果解壓之後權限不是root,則需要執行

cd m4-1.4.18

./configure --prefix=/usr/local/m4-1.4.18              ##-->指定安裝路徑爲:/usr/local/m4-1.4.18

make && make install

vim /etc/profile

#在最後一行加上:

export PATH=/usr/local/m4-1.4.18/bin:$PATH

source /etc/profile

 

2.安裝gmp

tar xvf gmp-4.3.2.tar.bz2

cd gmp-4.3.2/            #-->如果解壓之後權限不是root,則需要執行

chown -R root:root gmp-4.3.2/

./configure --prefix=/usr/local/gmp-4.3.2 -->指定安裝路徑

make && make install

3.安裝mpfr

tar zxvf mpfr-2.4.2.tar.gz

chown -R root:root ./ 如果解壓之後權限不是root,則需要執行

cd mpfr-2.4.2/

./configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2   ##-->指定安裝路徑和gmp路徑

make && make install

4.安裝mpc

tar zxvf mpc-0.8.1.tar.gz

chown -R root:root ./ 如果解壓之後權限不是root,則需要執行

cd mpc-0.8.1/

./configure  --prefix=/usr/local/mpc-0.8.1  --with-mpfr=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2 -指定安裝路徑,mpfr和gmp路徑

make && make install

ln -s /usr/local/mpc-0.8.1/lib/libmpc.so.2 /usr/lib/libmpc.so.2

ln -s /usr/local/mpc-0.8.1/lib/libmpc.so.2 /usr/lib64/libmpc.so.2

export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib

5.安裝gcc

需要高版本的gcc,本次安裝的是4.8.0版本的

tar zxvf gcc-4.8.0.tar.gz

chown -R root:root ./ -->如果解壓之後權限不是root,則需要執行

cd gcc-4.8.0

./configure --prefix=/usr/local/gcc-4.8.0 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1

make && make install

##rm -f gcc g++ cc c++      -->此步驟執行後沒刪除文件且報錯,可忽略

/usr/local/gcc-4.8.0/bin/x86_64-unknown-linux-gnu-c++ c++   -->此步驟也可忽略

在/etc/prfile文件末尾追加

export PATH=/usr/local/gcc-4.8.0/bin:$PATH

source /etc/profile

是新版本的gcc生效

 

6.安裝cmake

tar zxvf cmake-3.7.2.tar.gz

chown -R root:root ./      #-->如果解壓之後權限不是root,則需要執行

cd cmake-3.7.2

./bootstrap

gmake

gmake install

7.安裝boost_1_59

安裝MySQL5.7.12要求boost_1_59_0版本

 tar xvf boost_1_59_0.tar.gz

chown -R root:root ./        #-->如果解壓之後權限不是root,則需要執行

cd boost_1_59_0

./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=gcc

./b2 toolset=gcc cxxflags="-std=c++11"

./b2 install

 

注意:

默認安裝在/usr/local/lib目錄下;頭文件在/usr/local/include/boost目錄下;install後面可以加參數 --prefix=/usr 來設置安裝路徑

如果安裝msyql時提示boost版本不對應則卸載boost安裝對應版本boost

boost卸載方法:

1.顯示已經安裝文件

rpm -qa | grep boost

2.使用一下命令依次卸載

rpm -e --nodeps xxxx

8.安裝mysql

tar xvf mysql-boost-5.7.12.tar.gz

chown -R root:root ./        #-->如果解壓之後權限不是root,則需要執行

cd mysql-5.7.12

cmake \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/app/mysql/mysql_data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BOOST=boost/boost_1_59_0

make && make install

#如果要重新安裝需要清理make,刪除CMakeCache.txt文件

make clean  

rm CMakeCache.txt  

#然後可以重新 cmake

 

解釋:

-DCMAKE_INSTALL_PREFIX=/app/mysql \ mysql安裝目錄

-DMYSQL_DATADIR=/app//mysql /mysql_data \ >mysql數據文件目錄

-DMYSQL_UNIX_ADDR=/app/mysql /mysql.sock 設置監聽套接字路徑,這必須是一個絕對路徑名。默認爲/tmp/mysql.sock

-DDEFAULT_CHARSET=charset_name 設置服務器的字符集。

缺省情況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_sets.cmake文件包含允許的字符集名稱列表。

-DDEFAULT_COLLATION=collation_name 設置服務器的排序規則。

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存儲引擎選項:

MyISAM,MERGE,MEMORY,和CSV引擎是默認編譯到服務器中,並不需要明確地安裝。

靜態編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

-DMYSQL_TCP_PORT=port_num 設置mysql服務器監聽端口,默認爲3306

-DENABLE_DOWNLOADS=bool 是否要下載可選的文件。例如,啓用此選項(設置爲1),cmake將下載谷歌所使用的測試套件運行單元測試。

9.初始化mysql

groupadd mysql

useradd -g mysql mysql

chown -R mysql:mysql /app/mysql

cp /app/mysql/support-files/mysql.server /etc/init.d/mysql

cp /app/mysql/support-files/my-default.cnf /etc/my.cnf  

chmod -R 755 /etc/init.d/mysql

bin/mysql_install_db --basedir=/app/mysql --datadir=/app/mysql/mysql_data --user=mysql

#設置開機自啓

chkconfig --add mysql

chkconfig --level 345 mysql on

#添加環境變量 /etc/profile最後一行

vi /etc/profile

#在最後一行後面添加

export PATH=/app/mysql/bin:$PATH

source /etc/profile

 

vim /etc/my.cnf 文件

#我的my.cnf文件如下;

[mysqld]
basedir = /app/mysql
datadir = /app/mysql/mysql_data
port = 3306
server_id = 1

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
default-character-set=utf8

在啓動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置文件的默認位置!在CentOS 6.4版操作系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啓動。

 

解決方案一:改名

mv /etc/my.cnf  /etc/my.cnf.bak

以後在使用"yum update"更新系統後,需要檢ls查下/etc目錄下是否會多出一個my.cnf,如果多出,將它重命名成別的。否則,MySQL將使用這個配置文件啓動,可能造成無法正常啓動等問題。

 

解決方案二:直接用mysql默認配置覆蓋徹底解決(推薦)

cp /app/mysql /support-files/my-default.cnf /etc/my.cnf  

 

mysql的啓停/登錄

#啓動mysql服務

service mysqld start

#重啓mysql服務

service mysqld restart

#停止mysql服務

service mysqld stop

 

隨機密碼存放在/root/.mysql_secret

mysql -uroot -p

輸入隨機密碼

 

進入mysql後要修改密碼,不然無法使用

mysql> alter user 'root'@'localhost' identified by 'root';

mysql> exit;

 

然後可以操作數據庫啦

mysql -uroot -p

#輸入新密碼root

 

mysql>show databases;

mysql>use mysql;

mysql>show tables;

mysql>quit;

 

問題解決

如果遇到:

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/***.com.pid).

就在

/usr/local/mysql/data/

目錄下新建一個空文件

***.com.pid

如果遇到:

[ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'問題

vi /etc/my.cnf

這一樣註釋掉#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果遇到:

sql/CMakeFiles/sql.dir/itme_geofuncc.cc.o

可能是內存不夠引起的,增大內存,重新進行cmake

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章