我們有一些流行的數據庫工具,它們是獨立的和常用的。 通常您可以在同一台服務器上使用兩個不同的關係數據庫管理系統 (RDBMS),如果它們不使用相同的端口,但如果您想使用服務器的最大資源,則不建議這樣做。 通常建議在每台服務器上安裝每個 RDBMS,或者在必要時在保留數據後卸載不需要的 RDBMS 並安裝新的。
最後一點甚至不適用於兩個 RDBMS,即 MariaDB 和 MySql。 您可能需要刪除 MySql 才能安裝 MariaDB,但有時您可能會遇到在 Linux 機器上卸載 MySQL 的問題。
在本教程中,我將向您展示如何完整正確地卸載 MySQL,以便在您的 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
在這種情況下,我們必須首先從系統中完全卸載 MySQL 並清除舊安裝的所有設置,然後通過添加自己的 repo 來安裝 MariaDB。
1) 徹底卸載mysql
我們首先需要正確卸載 MySql 及其所有依賴項
# 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 的兩種方法