1. 程式人生 > >Linux作業系統下安裝MySQL5.7

Linux作業系統下安裝MySQL5.7

MySQL是目前最流行的關係資料庫管理系統。它分為社群版和企業版。由於其體積小、速度快、成本低,尤其是開放原始碼這一特點,使其成為中小型網站開發的首選的資料庫平臺。

MySQL的安裝

環境準備,CentOS7 64bit 2G 記憶體(1G 記憶體編譯將近一個小時),磁碟空間 15G 以上。
最好使用本地源,由於網路源會把最新的安裝包下載,可能會出現安裝錯誤。
從MySQL5.7版本開始,安裝MySQL需要依賴 Boost 的C++擴充套件,而且只能是 1.59.0 版本。
從mysql5.5起,mysql原始碼安裝開始使用cmake了。
CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。
他能夠輸出各種各樣的makefile或者project檔案,能測試編譯器所支援的C++特性,類似UNIX下的automake。
1、準備工作
準備 c++ booost 庫,不需要編譯 。

    tar xf boost_1_59_0.tar.gz
    mv boost_1_59_0 /usr/local/boost #如果沒有boost目錄請自行建立

2.安裝相關編譯工具

yum install gcc*
yum install cmake
yum install ncurses*

3.下載mysql並解壓

tar xf mysql-5.7.19.tar.gz -C /usr/local/src ##解壓目錄,隨便在哪解壓,解壓之後,出現一個mysql57目錄,進入mysql57目錄進行編譯,必須要保證你的目錄的儲存空間有15G之內。

4.編譯

我是在/mysql解壓的mysql安裝包
cd /mysql
cd mysql57
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
解析:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 #指定安裝路徑
-DMYSQL_DATADIR=/data/mysql         #指定資料存放路徑
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci     #設定字元校驗集
-DMYSQL_TCP_PORT=3306 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  #設定套接字生成路徑
-DMYSQL_USER=mysql 
-DWITH_MYISAM_STORAGE_ENGINE=1              ##儲存引擎的支援
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DDOWNLOAD_BOOST=1 
-DWITH_BOOST=/usr/local/boost   #指定Boost擴充套件原始碼路徑
##編譯,必須在你解壓之後的mysql57目錄之下,cmake 的檢測過程中,如果出現錯誤,需要重新cmake,刪除快取檔案  
rm CMakeCache.txt , 然後重新執行cmake 。
make ##編譯,如果出現kernel的錯誤,可能是你的記憶體太小了,建議調整為2G
make install 釋放,會釋放在/usr/local/mysql57下面,這裡有mysql執行的主要程式,解壓路徑下的東西可以刪掉了,因為有關mysql的主要程式都在/usr/local/mysql57因為在cmake的時候已經指定了。
 


5.其他配置

 chown -R mysql:mysql /usr/local/mysql57 #   重新修改許可權,要求mysql使用者具有讀寫許可權
chmod 666 /etc/my.cnf  不允許其他使用者修改此配置檔案,但是mysql使用者可以讀寫此檔案。

6./etc/my.cnf主配置檔案

提供配置檔案, my.cnf    預設配置詳情如下,可以自己建立
        
[client]
port=3306
socket=/mysql/mysql.sock

[mysqld]
character-set-server=utf8 
collation-server=utf8_general_ci
user=mysql  #執行身份是mysql使用者
port=3306    #埠號為3306
basedir=/usr/local/mysql57 #工作路徑
datadir=/mysql    #資料目錄,自己指定,儘可能空間大一點,要求,mysql對此目錄具有讀寫許可權
tmpdir=/tmp       
socket=/mysql/mysql.sock #套接字生成路徑,可以自己指定
[mysqld_safe]
log-error=/mysql/mysqld.log #錯誤日誌產生路徑
pid-file=/mysql/mysqld.pid  #pid產生路徑

      

7.初始化資料庫

/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf  --initialize  --user=mysql 

命令引數解釋:
–defaults-file : 指定MySQL配置檔案路徑 ##這裡面有我們剛才配置好的引數
–initialize : 初始化隨機密碼,注意,初始化的密碼是一個過期密碼,登入後需要立刻修改密碼(5.7以後的版本)
–user: 指定執行使用者

7.mysql 5.7版本以後,就不是無密碼登入,系統會在初始化之後隨機產生一個密碼,在/mysql/mysqld.log中可以檢視(具體看你指定的目錄datadir)

cat /mysql/mysqld.log#我設定的datadir是/mysql

8.開啟服務

/usr/local/mysql57/support-files/mysql.server   start 

9.使用隨機密碼登入(注意登入之後要把密碼修改掉)

mysql -uroot  -p