mysql 5.7.18 原始碼安裝筆記
之所以貼出這樣一篇筆記呢?主要是因為很久之前,原始碼安裝MySQL的時候,碰到了太多太多的坎坷。
如果你有興趣進行原始碼安裝,那麼請不要以這篇文章為標準,因為每個人的及其環境等其他因素還是差距比較大的。
但可以作為一篇流程參考文件,其中的坑點總結,希望能幫助大家繞過一些不必要的麻煩!
坑點
1 5.7.6以後安裝必須有boost支援
2 許可權和路徑比較坑,步驟較多,如果中間錯了,
先檢查之前執行命令時許可權是否正確,
再檢查每一步操作的路徑是否符合自己本地要求
3 很多人傻傻的找不到原始碼包在哪裡,兩個都是原始碼包
只不過下一個包含boost依賴
準備
1、首先安裝依賴包
yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel
最最重要的是,不要忘了安裝openssl-devel
2、安裝cmake
sudo yum install cmake
1 mysql迅雷下載地址:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
2 解壓:
sudo tar xzvf mysql-boost-5.7.18.tar.gz -C /usr/local/Mysql/
注:稍後我們需要建立/usr/local/mysql,
所以這裡要建造一個Mysql,當然建造其他的也可以,
和之後的/usr/local/mysql 能區分開就好
3 先建立使用者mysql並將mysql使用者新增到mysql組下
groupadd mysql
useradd -g mysql mysql
將解壓的檔案的許可權修改為mysql:mysql
sudo chown mysql:mysql /usr/local/Mysql/mysql-5.7.18
注:建立使用者 sudo useradd -M -s /sbin/nologin mysql
4 安裝依賴包:
sudo apt install -y build-essential cmake libncurses5-dev bison
編譯
1 進入原始碼解壓目錄
cd /usr/local/Mysql/mysql-5.7.18/
2 建立編譯後的檔案儲存位置,並進入
(1)sudo mkdir build //建立build目錄
(2)cd build //進入build目錄
3 指定cmake引數
sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf8mb4 .. -DWITH_BOOST=/usr/local/src/mysql-5.7.18/boost/boost_1_59_0
.. -DMYSQL_DATADIR=/data/mysql/data
安裝的路徑有點坑, 下面這條命令中有兩個 ".."
如果不寫的話,會提示沒有 "/usr/local/mysql"
"/usr/local/Mysql/mysql-5.7.18/boost/boost_1_59_0"
由於對linux還不是特別熟悉,我估計應該是執行cmake時,會從根目錄開始找配置的引數目錄,
而".."代表根目錄
4 sudo make
編譯完成之後,和網上視訊教程講述的一致,效果如下:
5 執行 sudo make install
6 檢查是否安裝成功:
檔案編譯好之後,就需要安裝資料庫並執行配置了!
安裝Mysql
1 配置環境變數(非必須):
建立變數檔案,可以建立在profile,也可以建立在profile.d中
寫入配置資訊
執行生效環境變數,注意:這一步必須退到根目錄下執行,
2 建立配置檔案
在mysql的安裝目錄下建立配置檔案目錄/etc,
在/etc下建立my.cnf
3 編輯my.cnf
有些目錄 /data /log /run 可能沒有,則需要手動建立
my.cnf
[client]
[mysqld]
basedir=/usr/local/mysql
# this direct impossible is nothing,we need to build!
datadir=/usr/local/mysql/data
# The document was not informed
socket=/tmp/mysql.sock
character_set_filesystem = utf8mb4
character_set_server = utf8mb4
symbolic-links=0
# run and log is must!
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/run/mysqld.pid
4 將mysql目錄下的檔案許可權,全部賦給mysql,
否則會導致初始化後,/data下沒有任何內容
5 進行初始化
sudo /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf
--initialize --user=mysql
6 配置啟動服務
7 查詢mysql的初始密碼,在日誌檔案中隨機生成的;
後面的路徑需要注意是自己的
sudo grep 'root'@'localhost' /usr/local/mysql/log/mysqld.log
初始密碼:7wff5n<w%j_S
8 修改root密碼
ALTER USER [email protected] IDENTIFIED BY 'new password';
9 連線資料庫
mysql -h IP地址 -uroot -p 【回車後輸密碼】
GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;
QQ 群:219537016 雖然沒啥人氣,群主經常裝死中!
同事建立了一個微信討論群,群主最喜歡能解決問題時,出來冒泡,解決不了時,裝死!