1. 程式人生 > >mysql 5.7.18 原始碼安裝筆記

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    雖然沒啥人氣,群主經常裝死中!

同事建立了一個微信討論群,群主最喜歡能解決問題時,出來冒泡,解決不了時,裝死!