一、前言
在生產環境中部署數據庫時,很多人會選擇直接使用 yum/apt 包管理器 安裝 MySQL,這樣簡單快速,但缺點是版本受限,靈活性不足。對于需要指定版本、啟用特定編譯參數或優化的場景,源碼編譯安裝 MySQL 就顯得非常必要。
本文將以 CentOS 7 為例,演示如何從源碼編譯安裝 MySQL 5.7,包括環境準備、依賴安裝、源碼編譯、初始化配置以及服務啟動等完整流程。
二、安裝準備
安裝包自行到官網下載或其他網站下載。
安裝包上傳路徑我們選擇/usr/local,如圖:
(1)解壓安裝包
將mysql解壓到/usr/local/,執行如下命令:
tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz
將mysql-5.7.44-el7-x86_64目錄改名為mysql
mv mysql-5.7.44-el7-x86_64 mysql
(2)安裝流程/步驟
由于MySQL 服務進程一般不會用 root 用戶直接運行,而是以一個專門的 mysql
用戶來管理,保證安全性。
cat /etc/group | grep mysql ?-- 出現 mysql : x : 490 : 即為存在組
cat /etc/passwd | grep mysql -- 出現mysql:x:496:490::/home/mysql:/bin/bash 即為存在用戶
不存在則添加
groupadd mysql
useradd -r -g mysql mysql
創建文件夾:軟件放 /usr/local/mysql
,數據放 /data/mysql,
local下創建mysql(已有可不創建),根目錄創建data/mysql
sudo mkdir -p /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql# 在根目錄下新建 data 目錄(如果還沒有)
sudo mkdir -p /data/mysql# 修改權限為 mysql 用戶
sudo chown -R mysql:mysql /data/mysql
準備就緒后,執行初始化mysql,會隨機生成mysql的root密碼。及時復制保存隨機密碼。
/usr/local/mysql/bin/mysqld --initialize --user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mysql
如果不想隨機生成密碼,則執行以下命令,后續需要自行設置密碼。建議直接隨機密碼后續修改即可。
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \--basedir=/usr/local/mysql \--datadir=/data/mysql
至此,安裝算是完成了,但還需要做各種配置。
(3)系統設置和配置文件修改
初始化啟動腳本開機初始化目錄
cp ./support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld
修改配置文件,配置文件默認在/etc/my.cnf,如果沒有則創建。
vim /etc/my.cnf
配置文件內容:
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql-error.log
pid-file=/data/mysql/mysql.pid
如圖:
再次確保目錄權限正確:
chown -R mysql:mysql /data/mysql
啟動mysql:
service mysqld start
如出現以上圖中內容,則表示mysql已經啟動成功。
進一步驗證:
ps -ef | grep mysqld
測試開機自啟動:
# 重啟服務測試
service mysqld restart# 或者查看是否開機自啟
chkconfig --list mysqld
如圖則表示可以開機自啟動了
(4)其他注意事項或配置
登錄mysql
# 如果使用 --initialize
/usr/local/mysql/bin/mysql -u root -p# 使用 --initialize-insecure 不需要密碼
/usr/local/mysql/bin/mysql -u root
登錄后如圖:
到這里,安裝就完成了。需要修改隨機密碼,則執行下面命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密碼';
開放遠程訪問和連接請參考:
https://blog.csdn.net/ts977/article/details/145884849?spm=1001.2014.3001.5501
設置自動備份請參考:
https://blog.csdn.net/ts977/article/details/144748311?spm=1001.2014.3001.5501