Mysql 數據庫源碼編譯安裝
MySQL是一個關系型數據庫管理系統,關系型數據庫是將數據保存在不同的表中,而非將所有數據放在一個大倉庫內,這樣就加快了速度並提高了靈活性。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站數據庫。
環境准備:``
安裝環境 Centos 7.9
內核版本 Linux 3.10.0-1160.e17.x86_64 x86_64
數據庫版本信息 mysql5.7.34
推薦:硬盤至少大於20G,內存至少3G,SWAP3G(內存空間不足在編譯安裝時會導致編譯安裝失敗)
安裝准備:
1.檢查卸載默認
rpm –qa|grep mariadb
rpm -e --nodeps 現有版本
列出當前mysql rpm 安裝包
rpm –qa|grep mysql
卸載命令如上述
一、下載、編譯安裝
編譯安裝流程:
1.下載關聯依賴
yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxmlncurses-devel ncurses libgcrypt libtool* cmake openssl openssl-devel bisonbison-devel perl-Data-Dumper boost boost-doc boost-devel
yum install ncurses-devel (字符終端處理庫)
yum install bison (linux 下c/c++語法分析器)
2.創建用戶、用戶組及安裝目錄
groupadd mysql
useradd -p mysql -s /sbin/nologin mysql
mkdir -pv /usr/local/mysql/conf 創建2級目錄/mysql/conf
chown -R mysql:mysql /usr/local/mysql
mkdir -pv /data/mysql_data 創建數據庫存放數據目錄
chown -R mysql:mysql /data/mysql_data
3.下載相應源碼包
cd /usr/local/src/tools/ (選定文件下載目錄,自選)
進入官網找到下載對應版本信息()
找到對應版本后可直接下載到本機(服務器無網狀態推薦)
從物理機上獲取mysql源碼文件(推薦使用第三方遠程工具上傳到服務器指定目錄)
服務器能連接外網可直接使用命令下載,如下:
wget 對應版本
4.解壓文件夾到指定位置
cd /usr/local/src/tools/ (自定義存放文件位置)
tar –zxvf mysql-boost-5.7.34.tar.gz –C /usr/local/mysql/
解壓完成后進入解壓后的文件目錄
cd /usr/local/mysql/
cd mysql-boost-5.7.34
5.編譯
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定安裝目錄
-DMYSQL_DATADIR=/data/mysql_data \ 數據庫存放目錄
-DSYSCONFDIR=/usr/local/mysql/conf \
-DMYSQL_UNIX_ADDR=/data/mysql_data/mysql.sock
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DMYSQL_USER=mysql
-DWITH_SYSTEMD=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ innodb 存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DENABLE_DOWNLOADS=1
-DEXTRA_CHARSETS=all \ 安裝所有擴展字符集
-DDEFAULT_CHARSET=utf8mb4 \ 使用 utf8 字符
-DDEFAULT_COLLATION=utf8mb4_general_ci \ 校檢字符
-DWITH_DEBUG=0
-DMYSQL_MAINTAINER_MODE=0
-DWITH_SSL:STRING=system
-DWITH_ZLIB:STRING=bundled
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=./boost
如在編譯過程中出現錯誤信息需刪除當前目錄下cMakCache.txt文件,解決錯誤信息后重新編譯
以下顯示表示編譯完成
6.編譯安裝
make -j$(cat /proc/cpuinfo| grep "processor"| wc -l) && make install (會顯示的當前編譯進度時間較長)
-j參數后數字為CPU核數,可以通過使用cat /proc/ cpuinfo | grep processor | wc –l 進行查看使用該命令可提高編譯速度
注: 建議直接使用make && make install 編譯安裝(多次編譯錯誤運行此條)
編譯成功顯示如下
7.配置啟動文件
cd ./mysql-5.7.30
cp ./scripts/mysqld.service /usr/lib/systemd/system
vi /usr/lib/systemd/system/mysqld.service
無需修改
8.添加環境變量
cat > /etc/profile.d/mysql.sh << EOF
PATH=/usr/local/mysql/bin:$PATH
export PATH
EOF
source /etc/profile 運行該命令使其生效
9.初始化數據庫
參數說明,之前版本在/usr/local/mysql/script目錄下的初始化程序mysql_install_db本版本已移除,轉而使用mysqld替代。
-–initialize 會生成一個隨機密碼(保存在~/.mysql_secret),而 -–initialize-insecure 不會生成密碼。
-–datadir目標目錄下不能有數據文件。
初始化命令
rm -fr /data/mysql_data/*
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data
10.啟動服務
systemctl enable mysqld.service 設置mysql開機自啟動
systemctl daemon-reload 重新加載配置
systemctl start mysqld.service 啟動mysql數據庫
systemctl status mysqld.service 檢查當前數據庫狀態
查看當前進程狀態
ps –ef|grep mysql
二、檢查登錄數據庫
安裝完成后運行命令可檢查數據庫版本
/usr/local/mysql/bin/mysql --version
查看mysql安裝完成后目錄
登錄數據庫、初始無密碼
三、卸載源碼安裝
停用服務
systemctl stop mysqld.service
先執行此,才能禁用服務
systemctl daemon-reload
在開機時禁用一個服務
systemctl disable mysqld.service
刪除環境變量文件
rm /etc/profile.d/mysql.sh
刪除systemd啟動文件mysqld.service
rm /usr/lib/systemd/system/mysqld.service
刪除安裝目錄
rm -rf /usr/local/mysql
刪除數據文件(可選)
rm -rf /data/mysql_data/*