Centos7.6編譯安裝數據庫mysql5.7.22(華為鯤鵬雲服務器案例)


Centos7.6編譯安裝數據庫5.7.27(華為鯤鵬雲服務器)

1、數據庫下載相關安裝包

   https://downloads.mysql.com/archives/community/

 

 Mysql5.7.22版本有很多的變化,安裝時需要安裝BOOST庫,同安裝包一起下載即可。

2、創建安裝時需要的目錄

mkdir -p  /www/server/mysql/{data,logs,tmp,run}

3、安裝所需依賴

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

查看是否存在mariadb數據庫,存在就卸載

 4、升級gcc c++不然在華為鯤鵬雲會報錯(不是華為鯤鵬服務器不用做第4步操作)

rpm -qa | grep gcc  ##查詢gcc版本

rpm --nodeps -e gcc-c++-4.8.5-39.el7.aarch64 gcc-4.8.5-39.el7.aarch64  ##卸載

yum install centos-release-scl

yum install devtoolset-7     ##devtoolset-7對應gcc7.x.x版本

scl enable devtoolset-7 bash   ##激活gcc

gcc --version                  ##查看版本

4、下載高版本cmake

wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz

tar xvf cmake-3.6.2.tar.gz && cd cmake-3.6.2/ ##解壓

./bootstrap    ##執行安裝

gmake         ##編譯    

gmake install  

/usr/local/bin/cmake --version   ##查看版本

yum remove cmake -y             ##卸載舊的版本

5、 創建用戶及授權目錄

groupadd mysql

useradd -g mysql -s /sbin/nologin -M mysql

創建目錄用於存放boots

mkdir -p /www/server/mysql-boost

授權目錄

chown mysql:mysql -R /www/server/

chmod 777 -R /www/server/

7、解壓Mysql及mysql-boots

tar -zxvf mysql-5.7.27.tar.gz

tar -zxvf mysql-boost-5.7.27.tar.gz

解壓后mysql-boots后會自動的存在mysql-5.7.22目錄

 

boots下載:https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

解壓tar-zxvf boost_1_59_0.tar.gz

 移動到指定的目錄,在第8步的-DWITH_BOOST= 需要指定該目錄

 8、編譯安裝(根據自己目錄決定)

cmake . \

-DCMAKE_INSTALL_PREFIX=/www/server/mysql/ \

-DMYSQL_DATADIR=/www/server/mysql/data \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/www/server/mysql-boost/boost \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_UNIX_ADDR=/www/server/mysql/run/mysql.sock \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EMBEDDED_SERVER=1

編譯安裝

make -j 96-j 96 參數充分利用多核CPU優勢,加快編譯速度)

####之前我們一直使用make但是make編譯太

如果不是華為的鯤鵬雲服務器沒有報錯執行完畢后執行  make   install 即可

 華為鯤鵬雲編譯出現報錯

解決該問題error: prctlwas not declared in this scope

cp /usr/include/sys/prctl.h /root/mysql-5.7.27/include/

vim mysql-5.7.27/sql/mysqld.cc 

保存退出繼續執行 make -j 96

沒有報錯后,並執行100%就執行  make   install

 

9、初始化數據庫並配置my.cnf

 cd  /www/server/mysql   ###切換至安裝目錄   

 bin/mysqld --initialize    ###初始化數據庫

 

vim /etc/my.cnf          ###配置my.cnf

[mysql]

# 設置mysql客戶端默認字符集

default-character-set=utf8

[mysqld]

#設置3306端口

port = 3306

user = mysql

# 設置mysql的安裝目錄

basedir=/www/server/mysql

#mysql數據文件所在位置

datadir=/www/server/mysql/data/

#臨時目錄 比如load data infile會用到

tmpdir=/www/server/mysql/tmp/

##設置socke文件所在目錄

socket=/www/server/mysql/run/mysql.sock

#記錄當前 mysqld 進程的 pid

pid-file=/www/server/mysql/run/mysql.pid

#錯誤日志文件

log_error=/www/server/mysql/logs/error.log

#TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL

explicit_defaults_for_timestamp = true

# 允許最大連接數

max_connections=200

# 服務端使用的字符集默認為8比特編碼的latin1字符集

character-set-server=utf8

# 創建新表時將使用的默認存儲引擎

default-storage-engine=INNODB

#授權表中使用主機名了,只能使用IP

skip-name-resolve

#skip-grant-tables

#max_allowed_packet=12800074000

#時區

default-time_zone = '+8:00'

10、配置環境變量及設置開機自啟動

echo 'export PATH=/www/server/mysql/bin:$PATH' >>/etc/profile  ##設置變量

source /etc/profile        ###讓變量生效

將啟動文件拷貝至/etc/init.d/方便啟動

cp /www/server/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld   ###mysql執行權限

cd  /www/server/mysql/bin   ###切換至bin目錄

ln -s mysql /usr/sbin/mysql    ###創建軟連接方便使用mysql直接登陸

chkconfig mysqld on        ####設置開機自啟動

chkconfig --list mysqld      ####查看是3-5是否開啟

11、啟動數據庫

/etc/init.d/mysqld start

 

 那就來解決報錯,找不到error.log並沒權限。

 cd  /www/server/mysql/logs   ##切換至你安裝mysql時定義的日志目錄

 touch error.log               ###創建日志

 chmod 777 -R /www/server/

 chown mysql:mysql -R /www/server/    ###重新在設置一下權限

 再次啟動數據庫。

 /etc/init.d/mysqld start      ###啟動完成

 

登陸數據庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM