無外網(wǎng)環(huán)境下CentOS 7安裝MySQL 5.7.18
情況說明
由于工作需要,需要在一臺(tái)裝有 CentOS 系統(tǒng)的測(cè)試服務(wù)器上安裝 MySQL ,由于該服務(wù)器上存有其他比較重要的測(cè)試數(shù)據(jù),所以不能連接外網(wǎng)。由于之前安裝 MySQL 一直都是使用 yum 命令一鍵搞定的,所以手動(dòng)安裝的話還是有些麻煩的。所以在這里我將我在安裝過程中遇到的一些問題記錄下來。
在開始之前不得不吐槽一下,網(wǎng)上有一些教程實(shí)在是太坑爹,教程直接復(fù)制粘貼別人的,不寫環(huán)境,沒有版本號(hào)說明??粗突鸫蟆?/p>
本文安裝的MySQL為安裝最基本的功能,如需要安裝其他附加功能,請(qǐng)查看官方文檔。
本文適用于服務(wù)器不能聯(lián)網(wǎng)的情況下的安裝操作
安裝
環(huán)境說明
以下是我在寫本文章時(shí)所用到的一些環(huán)境說明。
對(duì)于其他版本版本的環(huán)境,我沒有進(jìn)行測(cè)試,所以不保證能夠成功,不過小版本號(hào)之間不同應(yīng)該沒有什么大礙。
項(xiàng)目 | 版本 | 說明 |
---|---|---|
操作系統(tǒng) | CentOS 7.2.1511 x86_64 | 最小化安裝 |
MySQL | Community 5.7.18-1.el7.x86_64 | rpm包 |
注:可以使用 cat /etc/redhat-release 命令,來確定自己安裝的CentOS的具體版本。
準(zhǔn)備工作
- 下載 MySQL 的安裝包,這里推薦使用搜狐的鏡像站下載,因?yàn)閺腗ySQL官網(wǎng)下載的速度實(shí)在感人,鏡像地址 選擇對(duì)應(yīng)的版本號(hào)下載即可。我在此使用的rpm包有以下4個(gè):
- mysql-community-client-5.7.18-1.el7.x86_64.rpm
- mysql-community-common-5.7.18-1.el7.x86_64.rpm
- mysql-community-libs-5.7.18-1.el7.x86_64.rpm
- mysql-community-server-5.7.18-1.el7.x86_64.rpm
以上四個(gè)rpm包是必須的,如果還需要其他的功能,可以自行進(jìn)行下載。以當(dāng)前版本為例,包含全部的rpm包的文件為mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
- 下載 numactl 軟件包:
- numactl-2.0.9-6.el7_2.x86_64.rpm
- numactl-devel-2.0.9-6.el7_2.x86_64.rpm
- numactl-libs-2.0.9-6.el7_2.x86_64.rpm
- 下載其他相關(guān)支持:
- perl-Data-Dumper-2.145-3.el7.x86_64.rpm
- libaio-0.3.109-13.el7.x86_64.rpm
以上軟件包是待會(huì)兒要用到的,請(qǐng)?zhí)崆皽?zhǔn)備好。這個(gè)軟件包網(wǎng)上直接搜索就能下載得到,這里提供一個(gè)下載地址下載地址 直接在搜索框搜索即可,下載時(shí)注意看版本號(hào)和位數(shù)(64位)
- 將下載好的軟件包一并上傳到服務(wù)器上,準(zhǔn)備安裝。
安裝
以下只是我的安裝順序,其實(shí)這些軟件包的安裝順序沒有太多明確的要求,不一定非要按以下順序安裝,但是可以會(huì)有一些相關(guān)的依賴問題,如果拋出依賴相關(guān)的錯(cuò)誤,只要把上邊對(duì)應(yīng)的依賴安裝上在重試一次即可。
- 安裝 libaio-0.3.109-13.el7.x86_64.rpm
- rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
- 安裝perl-Data-Dumper-2.145-3.el7.x86_64.rpm
- rpm -ivh perl-Data-Dumper-2.145-3.el7.x86_64.rpm
以上這兩項(xiàng)安裝時(shí)我并沒有遇到依賴問題,如果在實(shí)際安裝時(shí)遇到了,請(qǐng)查看相關(guān)提示,在下載對(duì)應(yīng)的包安裝即可。
- 安裝numactl相關(guān)
- rpm -ivh numactl*
如果不安裝此包,我們將會(huì)得到如下錯(cuò)誤
- 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
- 若此時(shí)直接安裝mysql,我們會(huì)得到一個(gè)異常:
- warning: mysql-community-libs-5.7.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies:
- mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.18-1.el7.x86_64
- mariadb-libs is obsoleted by mysql-community-libs-5.7.18-1.el7.x86_64
***行還能看明白,是依賴問題,第二行的“mariadb-libs 被廢棄”是什么鬼?廢棄了為什么不提供一個(gè)新的還要出現(xiàn)這種***提示呢?經(jīng)過一番搜尋,才發(fā)現(xiàn)是因?yàn)樵贑entOS 7上已經(jīng)有一個(gè)mariadb 而這個(gè)會(huì)與 MySQL的mariadb發(fā)生沖突。所以此時(shí)我們需要將系統(tǒng)自帶的mariadb卸載掉,然后使用mysql自帶的mariadb。
我們先來查看系統(tǒng)安裝的版本rpm -qa | grep mariadb,隨后進(jìn)行卸載,卸載的過程中會(huì)提示不能卸載,因?yàn)橛衅渌浖蕾嚧税?,我們要加? --nodeps 參數(shù)強(qiáng)制卸載
- rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
注意我上述寫的 mariadb-libs-5.5.37-1.el7_0.x86_64 是我剛剛用rpm -qa | grep mariadb查詢出的結(jié)果。不同版本可能會(huì)有所不同。
- 解決好這個(gè)問題后,就可以安裝mysql了,rpm -ivh mysql-community-* 即可。
啟動(dòng)
使用 service mysqld start 命令啟動(dòng)mysql實(shí)例,為了驗(yàn)證,我們使用service mysqld status驗(yàn)證一下。輸出結(jié)果如下:
Redirecting to /bin/systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2017-07-03 15:39:02 CST; 5s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 28054 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 27978 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 28056 (mysqld) CGroup: /system.slice/mysqld.service └─28056 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid Jul 03 15:38:57 nodemaster systemd[1]: Starting MySQL Server...Jul 03 15:39:02 nodemaster systemd[1]: Started MySQL Server.
登錄
我們使用 mysql -u root時(shí)會(huì)提示我們要輸入密碼,這個(gè)密碼存儲(chǔ)在 /var/log/mysqld.log 文件內(nèi),是系統(tǒng)自動(dòng)生成的。我們可以使用 cat /var/log/mysqld.log | grep password 命令將密碼找出來,然后填入,進(jìn)行登錄,登錄之后進(jìn)行修改密碼等操作。這些操作在官方文檔上都有詳細(xì)的說明,可以自行查看。
結(jié)尾
以上內(nèi)容若有不妥之處還請(qǐng)指出,我會(huì)在***時(shí)間盡心修改。