文章目錄
在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的步驟
以下部分會從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產品和組件的升級操作。具體可以參考:
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)
上面最新一步的安裝過程,如果網絡不好或者測試時段不好,可能會非常慢.可以直接訪問下面截圖那邊,去對應的版本去下載需要的包(比如利用迅雷這樣的下載工具,速度應該會非常快):