CentOS7入門_安裝並配置mysql5.7.18


  1. 下載mysql5.7 

mysql的官方下載地址

 

 

打開之后我們選擇對應的系統版本進行下載,之后選擇nothanks,不登陸直接下載(如果只是搭建最基本的的mysql的server只需要下載上圖4個基本rpm文件即可):

如果你的linux系統可以直接上網,那么可以直接復制下面的命令執行,即可在當前目錄下載mysql。

服務器端下載:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.18-1.el7.x86_64.rpm

客戶端下載:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.18-1.el7.x86_64.rpm

lib下載:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.18-1.el7.x86_64.rpm

common下載:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.18-1.el7.x86_64.rpm

 

嫌麻煩的童鞋可以直接下載第一個rpm-bundle(集合版)可以一勞永逸,這里我也給出下載地址:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
  1. 安裝mysql

下載完成后,首先需要我們看一下4個包的依賴關系。

mysql-community-common-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-5.7.18-1.el7.x86_64.rpm           --(依賴於common)
mysql-community-client-5.7.18-1.el7.x86_64.rpm         --(依賴於libs)
mysql-community-server-5.7.18-1.el7.x86_64.rpm         --(依賴於client、common)

我們依次執行安裝命令:

rpm -ivh mysql-*.rpm

出現了如下錯誤:

error: Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64

通過讀錯誤信息我們可以看出是缺少了依賴,經過我的研究發現是缺少了numactl.rpm,我在centos7安裝鏡像的package目錄中提取三個numactl.rpm文件,

把三個文件復制至同一文件夾下,使用通配符安裝目錄下所有rpm文件:

rpm -ivh numactl-*.rpm 

如果找不到numactl.rpm文件,但是你的linux可以聯網的話也已使用包管理器yum安裝:

yum install numactl

numactl.rpm安裝完成之后我們又看到如下錯誤:

error: Failed dependencies:
    mariadb-libs is obsoleted by mysql-community-libs-5.7.18-1.el7.x86_64

這是因為centos7 已經不支持mysql,所以內部集成了mariadb,而安裝mysql的話會和mariadb的文件沖突,所以需要先卸載掉mariadb。

列出所有被安裝的rpm package 

rpm -qa | grep mariadb

卸載 mariadb

rpm -e mariadb-libs-5.5.35-1.el7_0.x86_64

錯誤:依賴檢測失敗:

libmysqlclient.so.18()(64bit) postfix-2:2.10.1-6.el7.x86_64 
libmysqlclient.so.
18(libmysqlclient_18)(64bit) postfix-2:2.10.1-6.el7.x86_64

這時我們忽略依賴,強制卸載,加上 --nodeps

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

卸載完畢后重新安裝mysql

rpm -ivh mysql-*.rpm

最后檢查(注意大小寫)

rpm -qa | grep mysql

有如下提示說明安裝成功

  1. 配置mysql

 安裝完畢之后我們就可以嘗試登錄mysql數據庫了,但是當我運行mysql的時候又發生了意外,

經過我的初步判斷應該是mysql的服務沒有啟動,我們查詢一下mysql的狀態

service mysqld status  --注意此處是 mysqld

果然不出我所料,下面我們啟動mysql的服務

service mysqld start

再次查詢mysql的狀態

 

我們發現mysql的服務已經處於runing狀態。此時我們再次登錄mysql,正常情況下此時應該已經登錄成功了,但是博主的mysql卻並不能免密登錄,可能是mysql的版本問題。

 經過查找資料得知,我們需要首先需要初始化mysql的密碼,有兩種方法。我們先停止mysql:

service mysqld stop
mysql_install_db --datadir=/var/lib/mysql   //必須指定datadir,執行后會生成~/.mysql_secret密碼文件  
mysqld --initialize                         //新版的推薦此方法,執行后會在/var/log/mysqld.log生成隨機密碼  

我使用第一種方法,執行成功后在~/目錄即root目錄下並沒有生成 .mysql_secret密碼文件。(此處可能是因為我已經啟動過一次服務的原因,后面也會提到)。

我遂放棄這一種方法,因為下面的方法也正好是新版推薦的。(如果需要深入了解此命令請查看官方文檔

但是當我執行第二種方法時,卻產生如下錯誤。

2017-05-11T01:41:54.675302Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2017-05-11T01:41:54.675339Z 0 [ERROR] Aborting

意思就是說我的/var/lib/mysql目錄下有文件,我猜這兩個命令都不成功的原因是因為我運行過一次mysql,

於是我清空/var/lib/mysql目錄,在/var/lib/mysql下執行

rm -rf *

再次執行

mysqld --initialize

果然成功,執行以下命令查看日志。

cat /var/log/mysqld.log

上面的我們都不看,直接看最下面有一個臨時密碼。

此時我們再次啟動mysql

service mysqld start

啟動mysql后,我們使用臨時密碼登錄.

mysql -uroot -p

登陸成功后是不能進行任何操作的,否則會報

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

此時我們必須先修改mysql的密碼:

SET PASSWORD = PASSWORD('new password');

然后退出quit或者exit,並用新密碼重新登錄。

如果登錄成功,我們的mysql就安裝好啦。

恭喜你,讓我們開啟愉快的mysql之旅吧!

補充一點,這樣設置完成之后只允許本機登錄,如果你需要其他客戶端遠程連接時,則必須執行下一語句授權:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密碼' WITH GRANT OPTION;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM