《CentOS7.7》安裝MySQL-5.7.21

今天閒着沒事,玩玩CentOS7.7,結果在安裝MySQL-5.7.21時,各種坑,費勁巴拉的終於安裝上了。然後我又下載了MySQL-5.7.28,安裝試試,嗯,坑少了一點點,捂臉笑ing....................下面我整理一下,供大家參考,少採坑。CentOS7.7安裝Mysql5.7.28.在下一篇中。

一、安裝環境

--1. CentOS7.7                      也就是這個映像文件:CentOS-7-x86_64-Minimal-1908.iso

--2. MySQL-5.7.21                也就是這個tar包:mysql-5.7.21-1.el6.x86_64.rpm-bundle.tar

上傳mysql到linux上:

[root@m00 ~]# cd /opt/software
[root@m00 software]# ls
mysql-5.7.21-1.el6.x86_64.rpm-bundle.tar

二、開始安裝

第一步:拆包

[root@m00 software]# tar -xvf mysql-5.7.21-1.el6.x86_64.rpm-bundle.tar
mysql-community-libs-5.7.21-1.el6.x86_64.rpm
mysql-community-devel-5.7.21-1.el6.x86_64.rpm
mysql-community-server-5.7.21-1.el6.x86_64.rpm
mysql-community-test-5.7.21-1.el6.x86_64.rpm
mysql-community-embedded-5.7.21-1.el6.x86_64.rpm
mysql-community-client-5.7.21-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.21-1.el6.x86_64.rpm
mysql-community-common-5.7.21-1.el6.x86_64.rpm
mysql-community-embedded-devel-5.7.21-1.el6.x86_64.rpm
[root@m00 software]# 

這些rpm包,我們只需要其中四個:

mysql-community-libs-5.7.21-1.el6.x86_64.rpm
mysql-community-server-5.7.21-1.el6.x86_64.rpm
mysql-community-client-5.7.21-1.el6.x86_64.rpm
mysql-community-common-5.7.21-1.el6.x86_64.rpm

第二步:卸載mariadb

--1. 查詢一下mariadb的相關包
[root@m00 software]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
--2. 卸載查詢到的mariadb   加--nodeps 強制卸載哦
[root@m00 software]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

CentOS7.7最小版默認安裝了mariadb-lib庫,而mysql-5.7不兼容這個庫,所以我們要卸載

第三步:安裝MySQL-5.7.21

玩Linux的你應該知道,安裝包都存在着一定的依賴關係,這裏我就直接說了,我們最終是想安裝mysql-server包,但是mysql-server依賴mysql-client包,而mysql-client依賴mysql-libs包,而mysql-libs依賴於mysql-common包。因此我們的安裝順序如下:

--1. 先安裝mysql-common
[root@m00 software]# rpm -ivh mysql-community-common-5.7.21-1.el6.x86_64.rpm

--2. 再安裝mysql-libs
[root@m00 software]# rpm -ivh mysql-community-libs-5.7.21-1.el6.x86_64.rpm

--3. 然後安裝mysql-client
[root@m00 software]# rpm -ivh mysql-community-client-5.7.21-1.el6.x86_64.rpm

--4. 最後安裝mysql-server
[root@m00 software]# rpm -ivh mysql-community-server-5.7.21-1.el6.x86_64.rpm
error: Failed dependencies:
        /usr/bin/perl is needed by mysql-community-server-5.7.21-1.el6.x86_64
        libsasl2.so.2()(64bit) is needed by mysql-community-server-5.7.21-1.el6.x86_64
        net-tools is needed by mysql-community-server-5.7.21-1.el6.x86_64
        perl(File::Path) is needed by mysql-community-server-5.7.21-1.el6.x86_64
        perl(Getopt::Long) is needed by mysql-community-server-5.7.21-1.el6.x86_64
        perl(POSIX) is needed by mysql-community-server-5.7.21-1.el6.x86_64
        perl(strict) is needed by mysql-community-server-5.7.21-1.el6.x86_64

在我安裝mysql-server的rpm包時,提示安裝失敗,原因是server依賴軟件perl、net-tools 和庫文件libsasl2.so.2。這些地方就是要說的坑。

第四步:安裝依賴

我們可以先使用yum 安裝perl 和 net-tools的相關軟件

[root@m00 software]# yum -y install perl net-tools

而mysql-server所依賴的libsasl2.so.2,CentOS7.7最小版是沒有的,我各種百度,有人說從別的Linux的/usr/lib64/目錄下找到,然後放到CentOS7.7的相同路徑下,也有人說修改yum源的mysql-community庫什麼的,亂七八糟的。後來,我在這個網站上下載的libsasl2.so.2的rpm包,網址:http://www.rpmfind.net/linux/rpm2html/search.php?query=libsasl2.so.2()(64bit)   。上傳到linux上,安裝即可

[root@m00 software]# ls
lib64sasl2-2.1.25-12.1.mga3.x86_64.rpm

--4. 安裝libsasl2.so.2的rpm包
[root@m00 software]# rpm -ivh lib64sasl2-2.1.25-12.1.mga3.x86_64.rpm

第五步:再次安裝mysql-server

安裝完perl,net-tools和libsasl2.so.2後,我們再安裝mysql-server包,就成功了。

--再次安裝mysql-server
[root@m00 software]# rpm -ivh mysql-community-server-5.7.21-1.el6.x86_64.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-server-5.7.21-1.e^C################################# [100%]

三、啓動mysql

費勁巴拉的成功安裝完mysql-5.7.21的四個rpm包後,我們就要按照以下步驟,啓動服務,找到默認密碼,進入MySQL,然後修改成你想要的密碼就行了。

第一步:啓動MySQL的服務

--1. 可以使用CentOS7.7的systemctl命令來啓動服務
[root@m00 ~]# systemctl   start   mysqld 
    -----------如果上述命令,報服務not found,就用以下命令啓動服務-----
[root@m00 ~]# service   mysqld   start

這裏要說一下,如果服務還是起不來,就查看/var/log/mysqld.log日誌文件,看報什麼錯,如果報以下紅字錯誤:

7:01.499040Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
2020-01-01T13:27:01.499057Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory。

說明/var/run/目錄下是沒有mysqld目錄的,我們可以手動創建出來,但是需要修改權限,而且reboot後,這個目錄又不存在了,很噁心。這個時候我們可以採取一種一勞永逸的方式,修改/etc/my.cnf  和/etc/init.d/mysqld這兩個文件裏的/var/run/mysqld/...這個路徑。

1. 修改/etc/my.cnf

[root@m00 ~]# vi /etc/my.cnf
.......省略.........
log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid    <==註釋掉或者修改這一行,重新指定路徑爲/tmp,參考下面
pid-file=/tmp/mysqld.pid

2. 修改/etc/init.d/mysqld

[root@m00 ~]# vi /etc/init.d/mysqld
......省略........
#get_mysql_option pid-file "/var/run/mysqld/mysqld.pid" mysqld mysqld_safe
#將上面的內容註釋掉或者修改,參考下面的內容
get_mysql_option pid-file "/tmp/mysqld.pid" mysqld mysqld_safe
mypidfile="$result"
.............省略..........

3. 這樣再啓動服務,就應該沒有問題了

第二步:查找密碼並登陸mysql

啓動服務後,mysql會生成一個默認的初始密碼,比較複雜。我們找到,並進入mysql。

1. 去mysqld.log日誌文件裏查看初始密碼,下面root@localhost:後的內容就是你的密碼。別複製我的密碼...呵呵

[root@m00 ~]# cat /var/log/mysqld.log | grep password
2020-01-01T13:02:09.836826Z 1 [Note] A temporary password is generated for root@localhost: UhctshQYt7%.

2. 登陸,輸入密碼(可以採用複製的方式,如果你願意手抄,當我沒說)

[root@m00 ~]# mysql -u root -p
Enter password:                   <==複製那個初始密碼,粘貼

第三步:修改密碼

這一步比較噁心,在CentOS7.7裏安裝的mysql-5.7版本,密碼策略默認設置的比較高,即要求密碼中要有大小寫字母,要有數字,還要有特殊字符。否則提示你: Your password does not satisfy the current policy requirements

1. 我們先修改密碼策略爲low

mysql> set global validate_password_policy=low;

2. 在查看密碼策略

mysql> show variables like '%validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

可以看到密碼的長度是8,如果你願意,你可以將密碼長度改爲6.

3. 將密碼長度改爲6

mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)

4. 修改你想要的密碼吧

mysql> alter user root@localhost identified by '單引號裏寫密碼'

到此爲止,mysql-5.7.21 就可以在CentOS7.7里正常使用了。

 

--------------------------------------------如有疑問,敬請留言--------------------------------------------------------------

發佈了55 篇原創文章 · 獲贊 35 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章