北京時間昨晚(2015-12-07)22點左右,mysql開發團隊發佈了最新的5.7.10版本,正好我這裏也須要安裝mysql,因而開始動做。html
個人系統環境是centos7,64位系統,因此在http://dev.mysql.com/downloads/mysql/下載頁面,能夠選擇Linux - Generic和Red Hat Enterprise Linux / Oracle Linux兩個類別中的安裝包。另外,還能夠選擇yum方式安裝。下面逐一對安裝時出現的各類情況進行說明。java
1.首先來看選擇Linux - Generic下載Linux Using Generic Binaries的tar.gz文件進行安裝的狀況。
mysql
官方安裝說明文檔的url以下:linux
http://dev.mysql.com/doc/refman/5.7/en/binary-installation.htmlsql
在文檔中部列出了大段shell命令來演示如何安裝mysql,我按照文檔中的描述,一直執行到shell
shell> chown -R mysql data mysql-files
這一步都沒出現什麼錯誤,滿覺得安裝成功了,然而執行下面這句數據庫
shell>bin/mysqld_safe --user=mysql &
卻顯示mysql啓動錯誤!錯誤log沒有記錄下來,搞了半天也不知道錯誤在哪裏,沒辦法,只好放棄這種安裝。centos
2.接着使用yum方式安裝
ide
這是相對來講最簡單的安裝方式了,官方安裝說明文檔的url以下:ui
http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
按照文檔中所述,先下載並安裝mysql最新的鏡像源,而後執行
# yum install mysql-community-server
很是順利的完成了安裝,由於有了上次的經歷,內心很擔憂服務啓動不了,接着執行
# service mysqld start
果真出問題了,mysqld啓動錯誤,出現下面的提示:
Redirecting to /bin/systemctl start mysqld.service Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details. # service mysqld status Redirecting to /bin/systemctl status mysqld.service mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled) Active: failed (Result: start-limit) since Tue 2015-12-08 13:57:22 CST; 17s ago Process: 31004 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE) Process: 30988 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Failed to start MySQL Server. Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Unit mysqld.service entered failed state. Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: mysqld.service holdoff time over, scheduling restart. Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Stopping MySQL Server... Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Starting MySQL Server... Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: mysqld.service start request repeated too quickly, refusing to start. Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Failed to start MySQL Server. Dec 08 13:57:22 iZ25lox0jlhZ systemd[1]: Unit mysqld.service entered failed state.
google了好半天,發現這篇文檔
http://stackoverflow.com/questions/31813552/linux-antergos-install-mysql
安裝完應該先檢查一下/var/lib/mysql目錄下的文件權限,執行
# chown mysql:mysql -R /var/lib/mysql
而後從新啓動mysql服務
# service mysqld start
此次果真成功啓動mysql服務了!高興之餘,繼續按安裝文檔的說明,執行
# grep 'temporary password' /var/log/mysqld.log
執行這條命令竟然什麼都沒顯示,沒有查找到初始臨時密碼!
這是腫麼回事?只有繼續google,找到下面這篇文檔
http://mirror.metrocast.net/mysql/doc/refman/5.1/zh/problems.html#resetting-permissions
文中提到如何復位根用戶密碼,因而按照文檔說明開始執行,然而,執行到這句
shell> mysqld_safe --init-file=~/mysql-init &
才發現yum安裝的mysql 5.7.10社區版竟然沒有mysqld_safe這個文件!
爲何我使用yum方式安裝mysql,沒有生成臨時密碼,懇請讀了此文的數據庫大牛給釋疑一下。
頓時感受陷入了困境,束手無策,萬般無奈之下,只好用最後的辦法試一下。
3.使用rpm文件安裝mysql
首先在http://dev.mysql.com/downloads/mysql/,選擇Red Hat Enterprise Linux / Oracle Linux下載了519M的Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle 5.7.10,文件名是mysql-5.7.10-1.el7.x86_64.rpm-bundle.tar
解壓之,出現了12個rpm文件,而後參考下面的url:
http://www.cnblogs.com/5201351/p/4912614.html
(這篇是5.7.9的說明文檔,我安裝的是5.7.10版,最後的小版本號不一致)
文中說明,只須要安裝以下4個軟件包便可,咱們可使用rpm -ivh命令進行安裝
mysql-community-common-5.7.9-1.el7.x86_64.rpm mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依賴於common) mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依賴於libs) mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依賴於client、common)
初始化數據庫,咱們使用以下幾條命令都可,效果都是同樣的
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必須指定datadir,執行後會生成~/.mysql_secret密碼文件 [root@5201351 ~]# mysqld --initialize //新版的推薦此方法,執行後會在/var/log/mysqld.log生成隨機密碼
注意,按文檔的意思,彷佛是上面兩條命令執行一條就能夠了。我在執行第二條命令的時候,出現了error錯誤,遂沒管這個錯誤,直接進入下一步。
datadir=/var/lib/mysql是數據庫文件的放置路徑。
更改mysql數據庫目錄的所屬用戶及其所屬組,而後啓動mysql數據庫
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R [root@5201351 ~]# systemctl start mysqld.service //啓動mysql數據庫服務
mysql這時候順利的啓動起來了!又是一陣狂喜,趕忙到/root目錄下尋找.mysql_secret文件。火燒眉毛的打開,看到了一個生成的臨時密碼。執行
# mysql -uroot -p
輸入密碼,成功登陸mysql!
至此,在嘗試了3種安裝方法後,最終使用rpm文件成功安裝了最新mysql community server 5.7.10版!