本文將幫助您將數(shù)據(jù)庫(kù)從 MySQL 遷移到 MariaDB,因?yàn)檫w移過(guò)程中 MySQL 到 MariaDB 的二進(jìn)制兼容性非常簡(jiǎn)單。
Oracle 收購(gòu) MySQL 后,社區(qū)推動(dòng)了此類運(yùn)動(dòng)的成果,并開(kāi)發(fā)了一個(gè)名為 MariaDB 的新數(shù)據(jù)庫(kù)。 MariaDB 是開(kāi)源的并且與 MySQL 兼容。大多數(shù)Linux發(fā)行版(RH、CentOS、Fedora)已經(jīng)開(kāi)始使用MariaDB的支持作為MySQL的直接替代品。
如果我們想將數(shù)據(jù)庫(kù)從MySQL遷移到MariaDB,那么這文章會(huì)有所幫助。
準(zhǔn)備 MySQL 數(shù)據(jù)庫(kù)和表
我們創(chuàng)建一個(gè)測(cè)試 MySQL 數(shù)據(jù)庫(kù)和總體表用于演示目的。如果環(huán)境中有數(shù)據(jù)庫(kù)和表,則可以跳過(guò)此步驟。
使用 MySQL root 用戶和 root 用戶密碼從終端登錄 MySQL。
# mysql -uroot -p
登錄后復(fù)制
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)和表
mysql> Create database test1; mysql> use test1; mysql> create table tab1(name varchar(30), owner varchar(30), species varchar(20), sex char(1)); Query OK, 0 rows affected (0.02 sec)
登錄后復(fù)制
此外,我們將添加一些記錄來(lái)測(cè)試數(shù)據(jù)
mysql> insert into tab1 values('Chandra','Prakash','Kadarla','m'),('Srinvas','Kadarla','Chary','m'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 Then quit from the MySQL.
登錄后復(fù)制
MySQL 數(shù)據(jù)庫(kù)的備份
我們需要使用命令 – MySQL dump 來(lái)備份 MySQL 數(shù)據(jù)庫(kù)
# mysqldump --all-databases --user=root --password --master-data > backupDB.sql
登錄后復(fù)制
出于安全原因,我們將在系統(tǒng)的其他位置獲取 MySQL 的一些配置文件
# cp /etc/mysql/my.cnf /opt/my.cnf.bak
登錄后復(fù)制
卸載 MySQL 軟件包
我們將使用以下命令卸載 MySQL –
# service mysqld stop # yum remove mysql-server mysql-client mysql-common
登錄后復(fù)制
安裝 MariaDB 軟件包
在所有主要 Linux 發(fā)行版官方存儲(chǔ)庫(kù)上,MariaDB 已替換為 MySQL。即使您使用的是舊版本的Linux也可以添加官方存儲(chǔ)庫(kù)。
在yum repos目錄中創(chuàng)建文件
# sudo vi /etc/yum.repos.d/MariaDB.repo
登錄后復(fù)制
將以下內(nèi)容添加到文件中并保存
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
登錄后復(fù)制
要安裝 Maria-DB 服務(wù)器和客戶端,請(qǐng)運(yùn)行以下命令。
# yum install MariaDB-server MariaDB-client Loaded plugins: fastestmirror, langpacks base | 3.6 kB 00:00 extras | 3.4 kB 00:00 mariadb | 2.9 kB 00:00 updates | 3.4 kB 00:00 --> Restarting Dependency Resolution with new changes. --> Running transaction check ---> Package MariaDB-shared.x86_64 0:5.5.49-1.el7.centos will be obsoleting ---> Package mariadb-libs.x86_64 1:5.5.35-3.el7 will be obsoleted --> Finished Dependency Resolution Dependencies Resolved ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: MariaDB-client x86_64 5.5.49-1.el7.centos mariadb 8.6 M MariaDB-server x86_64 5.5.49-1.el7.centos mariadb 40 M MariaDB-shared x86_64 5.5.49-1.el7.centos mariadb 1.0 M replacing mariadb-libs.x86_64 1:5.5.35-3.el7 Installing for dependencies: MariaDB-common x86_64 5.5.49-1.el7.centos mariadb 23 k perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k perl-DBI x86_64 1.627-4.el7 base 802 k perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-IO-Compress noarch 2.061-2.el7 base 260 k perl-Net-Daemon noarch 0.48-5.el7 base 51 k perl-PlRPC noarch 0.2020-14.el7 base 36 k Transaction Summary ======================================================================================== Install 3 Packages (+8 Dependent packages) Total download size: 51 M Is this ok [y/d/N]: y Downloading packages: warning: /var/cache/yum/x86_64/7/mariadb/packages/MariaDB-5.5.49-centos7-x86_64-common.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY Public key for MariaDB-5.5.49-centos7-x86_64-common.rpm is not installed (1/11): MariaDB-5.5.49-centos7-x86_64-common.rpm | 23 kB 00:00:01 (2/11): MariaDB-5.5.49-centos7-x86_64-client.rpm | 8.6 MB 00:00:12 warning: /var/cache/yum/x86_64/7/base/packages/perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm is not installed (3/11): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00 (4/11): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00 (5/11): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00 (6/11): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00 (7/11): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00 (8/11): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00 (9/11): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00 (10/11): MariaDB-5.5.49-centos7-x86_64-shared.rpm | 1.0 MB 00:00:01 Total download size: 51 M Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : MariaDB-common-5.5.49-1.el7.centos.x86_64 1/12 Installing : perl-Data-Dumper-2.145-3.el7.x86_64 2/12 Installing : MariaDB-client-5.5.49-1.el7.centos.x86_64 3/12 Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 4/12 Installing : perl-Net-Daemon-0.48-5.el7.noarch 5/12 Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 6/12 Installing : perl-IO-Compress-2.061-2.el7.noarch 7/12 Installing : perl-PlRPC-0.2020-14.el7.noarch 8/12 Installing : perl-DBI-1.627-4.el7.x86_64 9/12 Installed: MariaDB-client.x86_64 0:5.5.49-1.el7.centos MariaDB-server.x86_64 0:5.5.49-1.el7.centos MariaDB-shared.x86_64 0:5.5.49-1.el7.centos Dependency Installed: MariaDB-common.x86_64 0:5.5.49-1.el7.centos perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 Replaced: mariadb-libs.x86_64 1:5.5.35-3.el7 Complete!
登錄后復(fù)制
安裝完所有必需的軟件包后,我們需要為 root 用戶帳戶設(shè)置密碼。 root 密碼恢復(fù)從 MySQL 備份的配置文件。
# cp /opt/my.cnf /etc/mysql/
登錄后復(fù)制
現(xiàn)在,我們需要運(yùn)行以下命令來(lái)重新啟動(dòng) MariaDB 服務(wù)。
# service mariadb start
登錄后復(fù)制
導(dǎo)入MySQL數(shù)據(jù)庫(kù)
我們必須將我們從MySQL備份的數(shù)據(jù)庫(kù)導(dǎo)入到MariaDB
# mysql -u root -p < backupDB.sql
登錄后復(fù)制
輸入root用戶的密碼,然后數(shù)據(jù)庫(kù)就會(huì)導(dǎo)入到MariaDB
我們需要檢查數(shù)據(jù)庫(kù)是否正確恢復(fù)。
請(qǐng)按照以下命令操作 –
# mysql -u root -p MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test1 | +--------------------+ 3 rows in set (0.00 sec) MariaDB [(none)]> use test1; MariaDB [test01]> select * from tab1; select * from tab1; +---------+---------+---------+------+ | name | owner | species | sex | +---------+---------+---------+------+ | Chandra | Prakash | Kadarla | m | | Srinvas | Kadarla | Chary | m | +---------+---------+---------+------+ 2 rows in set (0.00 sec)
登錄后復(fù)制
現(xiàn)在從MySQL到MariaDB的遷移已經(jīng)成功完成。
在我們運(yùn)行命令并按照教程操作后,我們可以通過(guò)簡(jiǎn)單的步驟將數(shù)據(jù)庫(kù)從MySQL遷移到MariaDB,其中MariaDB有一個(gè)與 MySQL 相比,有很多新功能。在上面的教程中我使用了一個(gè)簡(jiǎn)單的場(chǎng)景來(lái)測(cè)試遷移配置。
以上就是如何在 Linux 上將 MySQL 遷移到 MariaDB?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!