在linux上使用yum 倉庫安裝MySQL

在linux上使用yum 倉庫安裝MySQL

翻譯官方文檔地址:https://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html

MySQL的yum倉庫 提供了Oracle linux髮型版本,紅帽企業linux髮型版本(RHEL)以及CentOS髮型版上的一些rpm包,這些rpm可以包含MySQL 服務端的安裝包、MySQL客戶端的安裝包,MySQL Workbench,MySQL組件,MySQL路由(MySQL Router),MySQL shell,連接器/ODBC(Connector/ODBC),連接器/Python等等。

MySQL提供的yum倉庫不包含所有linux髮型版本,具體可以參考 使用yum倉庫安裝其他MySQL的產品以及組建

自行補充翻譯之外內容:大部分時候,我們關心的最多的就是MySQL server,MySQL client以及MySQL Utilities相關的rpm包;

開始之前

MySQL作爲一個流行的、開源的軟件,它的源代碼和預安裝包形式廣泛的安裝在來自各種源的系統之上,包括不同的軟件下載站點,軟件倉庫等等。接下來的步驟是假設你的系統並沒有使用第三方髮型的RPM包管理器安裝過MySQL產品。如果你已經使用的第三方rpm包管理器安裝了MySQL產品,可以參考以下章節:

使用MySQL的yum倉庫升級MySQL

使用MySQL的yum倉庫替換MySQL的第三方髮型版

新安裝MySQL的步驟

以下部分會從MySQL的yum 倉庫 安裝MySQL最新的GA 版本(目前主流的、最新的系列是MySQL 5.7的系列版本):

1、添加MySQL的yum倉庫

首先把MySQL提供的yum倉庫配置配置到你的yum倉庫配置文件列表,這個操作是一次性的操作(只需要添加一次即可),這樣你的系統才能訪問到MySQL的yum倉庫地址。接下來做以下步驟:

a. 在MySQL的開發區(in the MySQL Developer Zone)找到MySQL的yum倉庫下載頁面,(https://dev.mysql.com/downloads/repo/yum/

b. 根據你直接的平臺下載合適的軟件包;

c. 使用以下命令來安裝下載下來的軟件包,樣例中的platform-and-version-specific-package-name 要替換成你下載的rpm包名:

shell> sudo yum localinstall platform-and-version-specific-package-name.rpm

對於EL6系統,命令應該是以下類似的形式:

shell> sudo yum localinstall mysql57-community-release-el6-{version-number}.noarch.rpm

對於EL7系統,命令應該是以下類似的形式:

shell> sudo yum localinstall mysql57-community-release-el7-{version-number}.noarch.rpm

PS: 額外說明,其實CentOS 6之後(包括RHEL 6),上面localinstall可以直接替換成install。不過爲了兼容性考慮,localinstall是有保留支持的。

安裝命令會添加MySQL的yum倉庫到你的系統yum倉庫配置列表中,並且會下載安裝GnuPG key,用於對安裝軟件包時候的軟件包的一致性做校驗檢測。關於GnuPG key,可以參考 使用GnuPG做簽名檢測

可以使用以下命令檢測是否軟件包提供的yum倉庫配置文件是否安裝成功:

shell> yum repolist enabled | grep "mysql.*-community.*"

注意:

如果你安裝了MySQL的yum倉庫,你是用yum update這種全局更新命令將會升級MySQL倉庫能升級的軟件包。

具體可以參考 使用MySQL的yum倉庫升級MySQL 以及 升級共享客戶端庫

2、選擇系列版本

當使用MySQL的yum倉庫的時候,默認會選擇最新的GA系列(目前是MySQL 5.7版本是主流)來安裝。如果當前主流版本就是你想要安裝的,你可以直接跳過以下步驟,直接去 安裝MySQL的步驟

在MySQL的yum倉庫內,不同髮型系列的MySQL社區版本是請求不同的子庫的路由。最新的GA 系列(默認是MySQL 5.7系列)是啓用的,其他所有系列(比如MySQL 5.6系列)默認都是關閉的。可以使用以下命令去查看所有MySQL yum倉庫的字庫,看看哪些是啓用的哪些是禁用的:

shell> yum repolist all | grep mysql

從最近的GA系列中去安裝最近的版本,去需要去額外配置。從最近的AG系列中去安裝指定版本,要在安裝安裝命令前,禁止掉最近的子倉庫,並且啓用指定系列的子倉庫。如果你的平臺支持yum-config-manager,你可以執行這些命令,命令主要是禁止5.7系列的子倉庫並且啓用5.6系列的子倉庫:

shell> sudo yum-config-manager --disable mysql57-community
shell> sudo yum-config-manager --enable mysql56-community

除了使用yum-config-manager命令之外,可以手動編輯/etc/yum.repos.d/mysql-community.repo文件,並且選擇添加指定的系列的yum倉庫連接配置。模板如下:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

找到你要配置的子倉庫配置,並且編輯enabled選項。如果要禁止指定子配置,可以設置enabled=0,如果要啓用指定子配置,可以通過設置enabled=1。例如要使用5.6的系列,就要先禁用5.7的系列,啓用5.6的系列如下:

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

在任何時候,都應該只啓用一個子倉庫。如果有多個版本的yum子配置啓用,默認yum會去選擇最新版本。可以通過一下命令檢查啓用的子配置:

shell> yum repolist enabled | grep mysql

3、安裝MySQL

用以下命令安裝:

shell> sudo yum install mysql-community-server

上面安裝會安裝MySQL服務端需要的軟件包(mysql-community-server),並且會安裝運行服務端所需要的的組件包,包括客戶端的包(mysql-community-client),服務端和客戶端與公共錯誤消息和字符集相關的包(mysql-community-common),以及共享的客戶端庫(mysql-community-libs).

4、啓動MySQL服務端

使用以下命令來啓動MySQL的服務端:

shell> sudo service mysqld start

上面命令如果成功,會簡單輸出以下信息:

Starting mysqld:[ OK ]

可以使用以下的命令來檢測MySQL服務端的運行狀態:

shell> sudo service mysqld status

上面的命令會輸出以下信息(一個樣例):

mysqld (pid 3066) is running.

5、保護MySQL的安裝(Securing the MySQL Installation)

mysql_secure_installation 程序允許你去執行諸如 給root用戶設置密碼(MySQL默認管理員權限用戶是root),刪除匿名用戶(可以通過空密碼登錄的)等等操作。建議總是在安裝後執行以下命令去加固你MySQL的安裝:

shell> mysql_secure_installation

千萬要記住自己設置的root用戶的密碼。具體可以參考: 優化MySQL安裝的安全安裝後步驟

注意:

基於EL7平臺的兼容信息:平臺的本機軟件存儲庫中的以下RPM包與安裝MySQL Server的MySQL yum存儲庫中的包不兼容。一旦你是用MySQL yum倉庫安裝了它們,你講不能使用安裝本機存儲庫中的RPM包,反之亦然。

  • akonadi-mysql

6、使用MySQL yum倉庫安裝其他MySQL的產品和組件

你可以使用yum去安裝和管理特定的MySQL組件。其中的一些組件路由請求道MySQLyum倉庫的子庫中:例如MySQL 連接器(Connectors)可以在MySQL Connectors Community子倉庫中找到,而MySQL Workbench在MySQL Tools Community中。可以使用以下命令來列出MySQL Yum倉庫中符合你平臺的所有的MySQL相關的可用組件:

shell> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available

如果想要安裝任意你自行選擇的軟件包,可以使用以下命令:

shell> sudo yum install package-name

例如,安裝MySQL Workbench:

shell> sudo yum install mysql-workbench-community

去安裝客戶端共享庫:

shell> sudo yum install mysql-community-libs

7、使用Yum升級MySQL

除了安裝之外,你可以使用MySQL的yum倉庫來執行對MySQL產品和組件的升級操作。具體可以參考:

使用MySQL Yum 倉庫升級MySQL

8、CentOS 6上演示實例

8.1、實驗環境
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release 
CentOS release 6.10 (Final)
8.2、下載最新的包含yum倉庫安裝文件的rpm包

https://dev.mysql.com/downloads/repo/yum/

在這裏插入圖片描述

8.3、使用rpm看上傳的rpm文件
#查看安裝rpm的摘要信息:
[root@localhost ~]# ls -l mysql80-community-release-el6-2.noarch.rpm 
-rw-r--r--. 1 root root 25872 Mar 28 14:54 mysql80-community-release-el6-2.noarch.rpm
[root@localhost ~]# rpm -pqi mysql80-community-release-el6-2.noarch.rpm 
warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Name        : mysql80-community-release    Relocations: (not relocatable)
Version     : el6                               Vendor: MySQL
Release     : 2                             Build Date: Thu 17 Jan 2019 09:04:24 PM CST
Install Date: (not installed)               Build Host: vitro47
Group       : System Environment/Base       Source RPM: mysql80-community-release-el6-2.src.rpm
Size        : 31571                            License: GPLv2
Signature   : DSA/SHA1, Fri 18 Jan 2019 12:30:58 PM CST, Key ID 8c718d3b5072e1f5
Packager    : MySQL Release Engineering <[email protected]>
URL         : http://dev.mysql.com
Summary     : MySQL repository configuration for yum
Description :
Package for installation of setup/configuration files required for
installation of MySQL packages by yum.
# 查看安裝文件列表:
[root@localhost ~]# rpm -pql mysql80-community-release-el6-2.noarch.rpm 
warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
/etc/yum.repos.d/mysql-community-source.repo
/etc/yum.repos.d/mysql-community.repo

8.4、直接安裝並查看內容
[root@localhost ~]# rpm -ivh mysql80-community-release-el6-2.noarch.rpm 
warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                ########################################### [100%]
   1:mysql80-community-relea########################################### [100%]

[root@localhost yum.repos.d]# ls -l mysql-community*
-rw-r--r--. 1 root root 1862 Jan 17 21:04 mysql-community.repo
-rw-r--r--. 1 root root 1885 Jan 17 21:04 mysql-community-source.repo
[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d

#上文中,/etc/yum.repos.d目錄下,rpm包安裝的兩個yum的配置。
其中mysql-community.repo是指向mysql社區版的二進制包的yum配置,
mysql-community-source.repo是指向mysql的rpm包的源碼包的yum配置。

#查看所有的和mysql相關的repo
[root@localhost ~]# yum repolist all | grep mysql
mysql-cluster-7.5-community        MySQL Cluster 7.5 Community    disabled
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community -  disabled
mysql-cluster-7.6-community        MySQL Cluster 7.6 Community    disabled
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community -  disabled
mysql-connectors-community         MySQL Connectors Community     enabled:    83
mysql-connectors-community-source  MySQL Connectors Community - S disabled
mysql-tools-community              MySQL Tools Community          enabled:    74
mysql-tools-community-source       MySQL Tools Community - Source disabled
mysql-tools-preview                MySQL Tools Preview            disabled
mysql-tools-preview-source         MySQL Tools Preview - Source   disabled
mysql55-community                  MySQL 5.5 Community Server     disabled
mysql55-community-source           MySQL 5.5 Community Server - S disabled
mysql56-community                  MySQL 5.6 Community Server     disabled
mysql56-community-source           MySQL 5.6 Community Server - S disabled
mysql57-community                  MySQL 5.7 Community Server     disabled
mysql57-community-source           MySQL 5.7 Community Server - S disabled
mysql80-community                  MySQL 8.0 Community Server     enabled:    72
mysql80-community-source           MySQL 8.0 Community Server - S disabled

#查看默認啓用的和mysql相關的repo
[root@localhost ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community           MySQL Connectors Community              83
mysql-tools-community                MySQL Tools Community                   74
mysql80-community                    MySQL 8.0 Community Server              72


8.5、設置啓用MySQL 5.6的repo並安裝
#設置啓用5.6的repo,禁止5.7和8.0的
#要用到yum-config-manager這個工具,或者知道yum客戶端配置原理的,可以手動修改/etc/yum.repos.d目錄下對應的yum 倉庫配置
#yum-config-manager工具屬於yum-utils軟件包,默認最小化安裝系統沒有安裝

[root@localhost ~]# rpm -qf /usr/bin/yum-config-manager 
yum-utils-1.1.30-42.el6_10.noarch

[root@localhost ~]# yum-config-manager --help #查看幫助信息
##省略......

[root@localhost ~]# yum-config-manager --disable mysql80-community
#默認會導出修改後的yum倉庫配置內容到標準輸出,這裏省略了。

[root@localhost ~]# yum-config-manager --enable mysql56-community
#同理

#再次查看啓用的repo,mysql56-community這個repo顯示出來了。
[root@localhost ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community           MySQL Connectors Community              83
mysql-tools-community                MySQL Tools Community                   74
mysql56-community                    MySQL 5.6 Community Server             493

###yum查看一下mysql的安裝包
[root@localhost ~]# yum list|grep '^mysql'
mysql-libs.x86_64                          5.1.73-8.el6_8                @anaconda-CentOS-201806291108.x86_64/6.10
mysql80-community-release.noarch           el6-2                         installed
mysql.x86_64                               5.1.73-8.el6_8                base   
mysql-bench.x86_64                         5.1.73-8.el6_8                base   
mysql-community-bench.i686                 5.6.42-2.el6                  mysql56-community
mysql-community-bench.x86_64               5.6.43-2.el6                  mysql56-community
mysql-community-client.i686                5.6.43-2.el6                  mysql56-community
mysql-community-client.x86_64              5.6.43-2.el6                  mysql56-community
mysql-community-common.i686                5.6.43-2.el6                  mysql56-community
mysql-community-common.x86_64              5.6.43-2.el6                  mysql56-community
mysql-community-devel.i686                 5.6.43-2.el6                  mysql56-community
mysql-community-devel.x86_64               5.6.43-2.el6                  mysql56-community
mysql-community-embedded.i686              5.6.43-2.el6                  mysql56-community
mysql-community-embedded.x86_64            5.6.43-2.el6                  mysql56-community
mysql-community-embedded-devel.i686        5.6.43-2.el6                  mysql56-community
mysql-community-embedded-devel.x86_64      5.6.43-2.el6                  mysql56-community
mysql-community-libs.i686                  5.6.43-2.el6                  mysql56-community
mysql-community-libs.x86_64                5.6.43-2.el6                  mysql56-community
mysql-community-libs-compat.i686           5.6.43-2.el6                  mysql56-community
mysql-community-libs-compat.x86_64         5.6.43-2.el6                  mysql56-community
mysql-community-release.noarch             el6-5                         mysql-connectors-community
mysql-community-server.i686                5.6.42-2.el6                  mysql56-community
mysql-community-server.x86_64              5.6.43-2.el6                  mysql56-community
mysql-community-test.x86_64                5.6.43-2.el6                  mysql56-community
mysql-connector-c++.x86_64                 8.0.15-1.el6                  mysql-connectors-community
mysql-connector-c++-devel.x86_64           8.0.15-1.el6                  mysql-connectors-community
mysql-connector-c++-jdbc.x86_64            8.0.15-1.el6                  mysql-connectors-community
mysql-connector-java.noarch                1:5.1.17-6.el6                base   
mysql-connector-odbc.x86_64                8.0.15-1.el6                  mysql-connectors-community
mysql-connector-odbc-debuginfo.x86_64      8.0.15-1.el6                  mysql-connectors-community
mysql-connector-odbc-setup.x86_64          8.0.15-1.el6                  mysql-connectors-community
mysql-connector-python.noarch              2.0.4-1.el6                   mysql-connectors-community
mysql-connector-python.x86_64              2.1.7-1.el6                   mysql-connectors-community
mysql-connector-python-cext.x86_64         2.1.7-1.el6                   mysql-connectors-community
mysql-connector-python-debuginfo.x86_64    2.1.7-1.el6                   mysql-connectors-community
mysql-devel.i686                           5.1.73-8.el6_8                base   
mysql-devel.x86_64                         5.1.73-8.el6_8                base   
mysql-embedded.i686                        5.1.73-8.el6_8                base   
mysql-embedded.x86_64                      5.1.73-8.el6_8                base   
mysql-embedded-devel.i686                  5.1.73-8.el6_8                base   
mysql-embedded-devel.x86_64                5.1.73-8.el6_8                base   
mysql-libs.i686                            5.1.73-8.el6_8                base   
mysql-ref-manual-5.6-en-html-chapter.noarch
mysql-ref-manual-5.6-en-pdf.noarch         1-20181222                    mysql56-community
mysql-router.x86_64                        8.0.12-1.el6                  mysql-tools-community
mysql-router-community.x86_64              8.0.15-1.el6                  mysql-tools-community
mysql-router-debuginfo.x86_64              8.0.12-1.el6                  mysql-tools-community
mysql-server.x86_64                        5.1.73-8.el6_8                base   
mysql-shell.x86_64                         8.0.15-1.el6                  mysql-tools-community
mysql-shell-debuginfo.x86_64               8.0.15-1.el6                  mysql-tools-community
mysql-test.x86_64                          5.1.73-8.el6_8                base   
mysql-utilities.noarch                     1.6.5-1.el6                   mysql-tools-community
mysql-utilities-extra.noarch               1.5.6-1.el6                   mysql-tools-community
mysql-workbench-community.x86_64           6.3.8-1.el6                   mysql-tools-community
mysql-workbench-community-debuginfo.x86_64 6.3.8-1.el6                   mysql-tools-community

#直接安裝
yum install mysql-community-server

PS:如果忍受不了在線安裝的速度,下面給出筆者演示時指定MySQL 5.6版本的最新的資源鏈接(建議自行使用專門下載工具下載)
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-client-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-common-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-devel-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-embedded-devel-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-libs-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-libs-compat-5.6.43-2.el6.x86_64.rpm
http://repo.mysql.com/yum/mysql-5.6-community/el/6/x86_64/mysql-community-server-5.6.43-2.el6.x86_64.rpm

上述文件下載到本地後,可以上傳到某個linux文件系統目錄下,然後使用yum通配安裝所有rpm包,會自行解決依賴關係的。

#查看安裝的軟件包
[root@localhost ~]# rpm -qa |grep mysql
mysql80-community-release-el6-2.noarch
mysql-community-common-5.6.43-2.el6.x86_64
mysql-community-client-5.6.43-2.el6.x86_64
mysql-community-server-5.6.43-2.el6.x86_64
mysql-community-libs-5.6.43-2.el6.x86_64
mysql-community-libs-compat-5.6.43-2.el6.x86_64

[root@localhost ~]# mysql -V
mysql  Ver 14.14 Distrib 5.6.43, for Linux (x86_64) using  EditLine wrapper

然後第一次啓動服務器會初始化,由於內容過多,不一一列出:
[root@localhost ~]# ls -l /etc/init.d/mysqld 
[root@localhost ~]# service mysqld start
Initializing MySQL database:  2019-03-28 15:52:50 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-28 15:52:50 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2019-03-28 15:52:50 0 [Note] /usr/sbin/mysqld (mysqld 5.6.43) starting as process 1770 ...
2019-03-28 15:52:50 1770 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-03-28 15:52:50 1770 [Note] InnoDB: The InnoDB memory heap is disabled
2019-03-28 15:52:50 1770 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
......
[root@localhost ~]# service mysqld status
mysqld (pid  2022) is running...
[root@localhost ~]# ss -tnl
State      Recv-Q Send-Q                                                                                      Local Address:Port                                                                                        Peer Address:Port 
LISTEN     0      80                                                                                                     :::3306                                                                                                  :::*     
LISTEN     0      128                                                                                                    :::22                                                                                                    :::*     
LISTEN     0      128                                                                                                     *:22                                                                                                     *:*     
LISTEN     0      100                                                                                                   ::1:25                                                                                                    :::*     
LISTEN     0      100                                                                                             127.0.0.1:25                                                                                                     *:*     
[root@localhost ~]# ps aux|grep mysqld
root       1818  0.0  0.1 108316  1644 pts/0    S    15:52   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql      2022  2.6 45.4 1406720 455480 pts/0  Sl   15:52   0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root       2091  0.0  0.0 103320   884 pts/0    S+   15:53   0:00 grep mysqld

[root@localhost ~]# mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

上面最新一步的安裝過程,如果網絡不好或者測試時段不好,可能會非常慢.可以直接訪問下面截圖那邊,去對應的版本去下載需要的包(比如利用迅雷這樣的下載工具,速度應該會非常快):
在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章