在CentOS8上面源代碼編譯安裝MySQL8.
創(chuàng)新互聯(lián)建站長(zhǎng)期為超過(guò)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為紫金企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,紫金網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。下載源代碼打開(kāi)MySQL下載頁(yè)面:
https://www.mysql.com/downloads/
找到MySQL社區(qū)版本頁(yè)面:
選擇下載MySQL社區(qū)版服務(wù)器進(jìn)行下載:
最后選擇,MySQL源代碼進(jìn)行下載,如下圖:
這里選擇了與平臺(tái)無(wú)關(guān)的的源代碼進(jìn)行下載,注意這里需要包含boost。
安裝檢查下載的源代碼沒(méi)有問(wèn)題后,將源代碼上傳到需要安裝的linux服務(wù)器上面。
# 檢查用戶組是否存在
cat /etc/group | grep mysql
# 檢查用戶是否存在
cat /etc/passwd | grep mysql
# 添加用戶組
groupadd mysql
# 添加用戶
useradd -r -g mysql -s /bin/false mysql
# 解壓安裝包
tar zxvf ./mysql-boost-8.0.31.tar.gz
# 進(jìn)入源碼目錄
cd ./mysql-8.0.31/
# 創(chuàng)建編譯目錄
mkdir bld
# 進(jìn)入編譯目錄
cd bld
# 創(chuàng)建安裝目錄
mkdir /opt/mysql
# 配置
cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost
# 編譯
make
# 安裝
make install
參數(shù)說(shuō)明:
-DBUILD_CONFIG=mysql_release
:表示使用與官方一樣的配置;-DCMAKE_INSTALL_PREFIX=/opt/mysql
:設(shè)置安裝的目錄;-DCPACK_MONOLITHIC_INSTALL=1
:使 make package 生成單個(gè)安裝文件;-DWITH_DEBUG=0
:禁用debug;-DWITH_SSL=system
:支持ssl;-DWITH_BOOST=$HOME/mysql-8.0.31/boost
:boost安裝目錄。期間遇到的依賴問(wèn)題:
dnf install gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils
dnf install gcc-toolset-11-annobin-plugin-gcc
準(zhǔn)備數(shù)據(jù)庫(kù)配置文件# 到安裝目錄
cd /opt/mysql/
# 參加數(shù)據(jù)庫(kù)數(shù)據(jù)文件目錄
mkdir data
# 修改權(quán)限
chown mysql:mysql data
chmod 750 data
# 準(zhǔn)備數(shù)據(jù)庫(kù)配置
vim my.cnf
my.cnf[mysqld]
port=3306
socket=/tmp/mysql.sock
mysqlx-port=33060
mysqlx-socket=/tmp/mysqlx.sock
basedir=/opt/mysql
datadir=/opt/mysql/data
初始化與啟動(dòng)數(shù)據(jù)庫(kù)bin/mysqld --defaults-file=./my.cnf --initialize --user=mysql
輸出如下:
2023-01-18T06:45:20.659891Z 0 [System] [MY-013169] [Server] /opt/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 1965037
2023-01-18T06:45:20.667103Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-18T06:45:20.987887Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-18T06:45:22.135569Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxx
# 設(shè)置ssl
bin/mysql_ssl_rsa_setup
# 手動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)
bin/mysqld_safe --defaults-file=./my.cnf --user=mysql
保持前臺(tái)手動(dòng)啟動(dòng)mysql進(jìn)程,新開(kāi)一個(gè)窗口,來(lái)加固mysql:
bin/mysql_secure_installation --port=3306 -h 127.0.0.1 -p
測(cè)試mysql -P 3306 -h 127.0.0.1 -u root -p
輸出如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
這樣就表示mysql啟動(dòng)成功了。
關(guān)閉mysql前臺(tái)運(yùn)行方式:
bin/mysqladmin shutdown -h 127.0.0.1 -P 3306 -p
輸入正確的root密碼,就會(huì)關(guān)閉mysqld進(jìn)程。
注冊(cè)為系統(tǒng)服務(wù) init舊腳本:# 負(fù)責(zé)系統(tǒng)服務(wù)配置文件
cp support-files/mysql.server /etc/init.d/mysql.server
# 重新加載配置文件
systemctl daemon-reload
# 注冊(cè)為系統(tǒng)服務(wù)
systemctl enable mysql.server.service
# 啟動(dòng)數(shù)據(jù)庫(kù)
systemctl start mysql.server.service
# 查看數(shù)據(jù)庫(kù)啟動(dòng)狀態(tài)
systemctl status mysql.server.service
# 停止數(shù)據(jù)庫(kù)
systemctl stop mysql.server.service
Sys V新腳本:如果在配置編譯時(shí),使用如下配置:
cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost -DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld
即配置如下:-DWITH_SYSTEMD=1 -DSYSTEMD_PID_DIR=/var/run/mysqld -DSYSTEMD_SERVICE_NAME=mysqld
這樣就是讓源碼編譯生產(chǎn)sys v的腳本。
cp ./usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service
# 重新加載配置文件
systemctl daemon-reload
# 注冊(cè)為系統(tǒng)服務(wù)
systemctl enable mysqld.server.service
# 啟動(dòng)數(shù)據(jù)庫(kù)
systemctl start mysqld.server.service
# 查看數(shù)據(jù)庫(kù)啟動(dòng)狀態(tài)
systemctl status mysqld.server.service
# 停止數(shù)據(jù)庫(kù)
systemctl stop mysqld.server.service
注意:這里這種方式sys v讀取的my.cnf位置在/opt/mysql/etc/my.cnf
這個(gè)位置。
到這里基本上就完成了mysql8的源碼安裝了。并且使用mysql提供的服務(wù)腳本,做成了系統(tǒng)服務(wù)。
參考:你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧