如何徹底刪除Mysql並安裝MariaDB 10

我們有一些流行的數據庫工具,它們是獨立的和常用的。 通常您可以在同一台服務器上使用兩個不同的關係數據庫管理系統 (RDBMS),如果它們不使用相同的端口,但如果您想使用服務器的最大資源,則不建議這樣做。 通常建議在每台服務器上安裝每個 RDBMS,或者在必要時在保留數據後卸載不需要的 RDBMS 並安裝新的。

最後一點甚至不適用於兩個 RDBMS,即 MariaDB 和 MySql。 您可能需要刪除 MySql 才能安裝 MariaDB,但有時您可能會遇到在 Linux 機器上卸載 My​​SQL 的問題。

在本教程中,我將向您展示如何完整正確地卸載 My​​SQL,以便在您的 Centos 7 服務器上安裝 MariaDB 10。

了解問題

如果我們簡單地刪除 MySQL 包並嘗試安裝 MariaDB,您的系統將嘗試重新安裝 MySQL。 您將收到一條錯誤消息,表明 MariaDB 已過時,您的系統將嘗試重新安裝 MySql:

# yum install MariaDB-server MariaDB-client -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.linode.com
 * epel: mirrors.kernel.org
 * extras: mirrors.linode.com
 * rpmforge: mirrors.evowise.com
 * updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
...............................
...............................

Dependencies Resolved

======================================================================================================================================================
 Package                                 Arch                    Version                                     Repository                          Size
======================================================================================================================================================
Installing:
 MariaDB-client                          x86_64                  10.1.26-1.el7.centos                        mariadb                             39 M
 MariaDB-server                          x86_64                  10.1.26-1.el7.centos                        mariadb                            103 M
 MariaDB-shared                          x86_64                  10.1.26-1.el7.centos                        mariadb                            1.3 M
     replacing  mariadb-libs.x86_64 1:5.5.52-1.el7
 mysql-community-libs                    x86_64                  5.6.37-2.el7                                mysql56-community                  2.0 M
     replacing  mariadb-libs.x86_64 1:5.5.52-1.el7
Installing for dependencies:
 MariaDB-common                          x86_64                  10.1.26-1.el7.centos                        mariadb                            123 k
 boost-program-options                   x86_64                  1.53.0-26.el7                               base                               156 k
 galera                                  x86_64                  25.3.20-1.rhel7.el7.centos                  mariadb                            8.0 M
 jemalloc                                x86_64                  3.6.0-1.el7                                 epel                               105 k
 libaio                                  x86_64                  0.3.109-13.el7                              base                                24 k
 mysql-community-common                  x86_64                  5.6.37-2.el7                                mysql56-community                  257 k

Transaction Summary
........................
........................
Total                                                                                                                 2.7 MB/s | 3.5 MB  00:00:01     
Running transaction check
Running transaction test

Transaction check error:
  file /usr/share/mysql/charsets/Index.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64
  file /usr/share/mysql/charsets/armscii8.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64
  file /usr/share/mysql/charsets/ascii.xml conflicts between attempted installs of mysql-community-common-5.6.37-2.el7.x86_64 and MariaDB-common-10.1.26-1.el7.centos.x86_64

在這種情況下,我們必須首先從系統中完全卸載 My​​SQL 並清除舊安裝的所有設置,然後通過添加自己的 repo 來安裝 MariaDB。

1) 徹底卸載mysql

我們首先需要正確卸載 My​​Sql 及其所有依賴項

# yum list installed | grep mysql
mysql-community-client.x86_64          5.6.37-2.el7                   @mysql56-community
mysql-community-common.x86_64          5.6.37-2.el7                   @mysql56-community
mysql-community-libs.x86_64            5.6.37-2.el7                   @mysql56-community
mysql-community-release.noarch         el7-5                          installed 
mysql-community-server.x86_64          5.6.37-2.el7                   @mysql56-community

要刪除具有依賴項的包,您需要安裝名為:remove-with-leaves 的 yum 插件。 要安裝它,請鍵入:

# yum install yum-plugin-remove-with-leaves

現在刪除一個包及其依賴項: yum remove package_name –remove-leaves 如下

# yum remove mysql-server --remove-leaves
Loaded plugins: fastestmirror, remove-with-leaves
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.6.37-2.el7 will be erased
--> Finished Dependency Resolution
removing libaio-0.3.109-13.el7.x86_64. It is not required by anything else.
removing mysql-community-client-5.6.37-2.el7.x86_64. It is not required by anything else.
removing mysql-community-libs-5.6.37-2.el7.x86_64. It is not required by anything else.
removing mysql-community-common-5.6.37-2.el7.x86_64. It is not required by anything else.
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-13.el7 will be erased
---> Package mysql-community-client.x86_64 0:5.6.37-2.el7 will be erased
---> Package mysql-community-common.x86_64 0:5.6.37-2.el7 will be erased
---> Package mysql-community-libs.x86_64 0:5.6.37-2.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                                   Arch                      Version                              Repository                             Size
======================================================================================================================================================
Removing:
 libaio                                    x86_64                    0.3.109-13.el7                       @base                                  38 k
 mysql-community-client                    x86_64                    5.6.37-2.el7                         @mysql56-community                     89 M
 mysql-community-common                    x86_64                    5.6.37-2.el7                         @mysql56-community                    2.1 M
 mysql-community-libs                      x86_64                    5.6.37-2.el7                         @mysql56-community                    9.2 M
 mysql-community-server                    x86_64                    5.6.37-2.el7                         @mysql56-community                    251 M

我們還需要卸載 mysql-community-release 倉庫

# yum remove mysql-community-release-el7-5
Loaded plugins: fastestmirror, remove-with-leaves
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el7-5 will be erased
--> Finished Dependency Resolution

2) 刪除 MySQL 目錄

現在我們需要刪除 MySQL 默認數據目錄 /var/lib/mysql 從我們的系統。 如果您在默認位置沒有看到該目錄,則表示它已更改為您可以在其中找到的其他位置 /etc/my.cnf 帶有變量 datadir 的文件。

在我們的例子中,我們將刪除 /var/lib/mysql 目錄,但您可以更喜歡重命名它以保留現有文件的備份。 我們將徹底清理我們的安裝目錄。

# rm -rf /var/lib/mysql/
# rm -rf /etc/my.cnf

3) 安裝 MariaDB 10

要安裝 MariaDB 10,我們必須在您的服務器上添加存儲庫。 我們將在下面創建一個 MariaDB repo 文件 /etc/yum.repos.d/MariaDB.repo 與下面的內容

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

現在我們可以安裝我們的包

# yum install MariaDB-server MariaDB-client
Loaded plugins: fastestmirror, remove-with-leaves
Loading mirror speeds from cached hostfile
 * base: mirrors.linode.com
 * epel: mirrors.kernel.org
 * extras: mirrors.linode.com
 * rpmforge: mirrors.evowise.com
 * updates: mirrors.linode.com
Resolving Dependencies
--> Running transaction check
---> Package MariaDB-client.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: MariaDB-common for package: MariaDB-client-10.1.26-1.el7.centos.x86_64
---> Package MariaDB-server.x86_64 0:10.1.26-1.el7.centos will be installed
--> Processing Dependency: galera for package: MariaDB-server-10.1.26-1.el7.centos.x86_64
--> Running transaction check
---> Package MariaDB-common.x86_64 0:10.1.26-1.el7.centos will be installed
---> Package galera.x86_64 0:25.3.20-1.rhel7.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                             Arch                        Version                                           Repository                    Size
======================================================================================================================================================
Installing:
 MariaDB-client                      x86_64                      10.1.26-1.el7.centos                              mariadb                       39 M
 MariaDB-server                      x86_64                      10.1.26-1.el7.centos                              mariadb                      103 M
Installing for dependencies:
 MariaDB-common                      x86_64                      10.1.26-1.el7.centos                              mariadb                      123 k
 galera                              x86_64                      25.3.20-1.rhel7.el7.centos                        mariadb                      8.0 M

Transaction Summary
======================================================================================================================================================
Install  2 Packages (+2 Dependent packages)

Total size: 150 M
Total download size: 150 M
Installed size: 647 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): MariaDB-10.1.26-centos7-x86_64-client.rpm                                                                               |  39 MB  00:00:02     
(2/3): galera-25.3.20-1.rhel7.el7.centos.x86_64.rpm                                                                            | 8.0 MB  00:00:01     
(3/3): MariaDB-10.1.26-centos7-x86_64-server.rpm                                                                               | 103 MB  00:00:12     
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                  12 MB/s | 150 MB  00:00:12     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : MariaDB-common-10.1.26-1.el7.centos.x86_64                                                                                         1/4 
  Installing : MariaDB-client-10.1.26-1.el7.centos.x86_64                                                                                         2/4 
  Installing : galera-25.3.20-1.rhel7.el7.centos.x86_64                                                                                           3/4 
  Installing : MariaDB-server-10.1.26-1.el7.centos.x86_64  

您可以查看以下狀態

# yum list installed | grep mariadb
MariaDB-client.x86_64             10.1.26-1.el7.centos   @mariadb               
MariaDB-common.x86_64             10.1.26-1.el7.centos   @mariadb               
MariaDB-server.x86_64             10.1.26-1.el7.centos   @mariadb               
MariaDB-shared.x86_64             10.1.26-1.el7.centos   @mariadb               

你不能在同一台服務器上安裝 MySQL 和 MariaDB。 所以你需要做一個完整的卸載。 您必須注意,在安裝 MariaDB 時,如果您需要將其刪除以安裝 MySQL,請不要忘記刪除 repo,否則將無法安裝 MySQL。

相關閱讀: 在 CentOS 7 上安裝 MariaDB 的兩種方法