当前位置: 首页 > 编程笔记 >

如何在Linux上将MySQL迁移到MariaDB?

谷梁建中
2023-03-14
本文向大家介绍如何在Linux上将MySQL迁移到MariaDB?,包括了如何在Linux上将MySQL迁移到MariaDB?的使用技巧和注意事项,需要的朋友参考一下

本文将帮助您将数据库从MySQL迁移到MariaDB,因为在迁移过程中MySQL到MariaDB的二进制兼容性非常简单。

在甲骨文收购MySQL之后,社区推动了这一运动的结果,并开发了一个名为MariaDB的新数据库。MariaDB是开源的,并且与MySQL兼容。大多数Linux发行版(RH,CentOS,Fedora)已经开始使用MariaDB的支持来代替MySQL。

如果我们要将数据库从MySQL迁移到MariaDB,那么本文将有所帮助。

准备一个MySQL数据库和表

我们创建一个测试MySQL数据库和总计表以进行演示。如果环境中有数据库和表,则可以跳过此步骤。

使用MySQL root用户和root用户密码从终端登录MySQL。

# mysql -uroot -p

创建一个数据库和表

Create database test1;
use test1;
create table tab1(name varchar(30), owner varchar(30), species varchar(20), sex char(1));

另外,我们将添加一些记录以测试数据

insert into tab1 values('Chandra','Prakash','Kadarla','m'),('Srinvas','Kadarla','Chary','m');
Records: 2 Duplicates: 0 Warnings: 0
Then quit from the MySQL.

MySQL数据库备份

我们需要使用以下命令对MySQL数据库进行备份– MySQL dump

# mysqldump --all-databases --user=root --password --master-data > backupDB.sql

出于安全原因,我们将MySQL的配置文件放在系统的其他位置

# cp /etc/mysql/my.cnf /opt/my.cnf.bak

卸载MySQL软件包

我们将使用以下命令卸载MySQL –

# service mysqld stop
# yum remove mysql-server mysql-client mysql-common

安装MariaDB软件包

在所有主要的Linux发行版官方存储库中,MariaDB已被MySQL取代。即使您使用的是旧版本的Linux,也可以添加官方存储库。

在yum repos目录中创建一个文件

# sudo vi /etc/yum.repos.d/MariaDB.repo

将以下内容添加到文件中并保存

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

要安装Maria-DB Server&Client,请运行以下命令。

# 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!

安装所有必需的软件包后,我们需要为root用户帐户设置密码。root密码恢复从MySQL备份的配置文件。

# cp /opt/my.cnf /etc/mysql/

现在,我们需要重新启动MariaDB服务,运行以下命令。

# service mariadb start

导入MySQL数据库

我们必须导入从MySQL备份到MariaDB的数据库

# mysql -u root -p < backupDB.sql

输入root用户的密码,然后将数据库导入到MariaDB中

我们需要检查数据库是否已正确还原。

请遵循以下命令–

# 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)

现在,从MySQL到MariaDB的迁移已成功完成。

在运行命令并按照教程进行操作之后,我们可以通过简单的步骤将数据库从MySQL迁移到MariaDB,与MySQL相比,MariaDB具有许多新功能。在上面的教程中,我使用了一个简单的场景来测试迁移配置。

 类似资料:
  • 问题内容: 我有一个带有几个表的mysql数据库,我想将mysql数据迁移到ElasticSearch。通过批处理作业很容易将整个数据库迁移到ES。但是我应该如何从MySQL实时更新ES。即,如果在mysql中有更新操作,那么我应该在ES中执行相同的操作。我研究了mysql binLog,它可以反映mysql的任何更改。但是我必须将binLog解析为ES语法,我认为这确实很痛苦。谢谢!(与Solr

  • 问题内容: 我在数据库端有什么需要做的,还是只是PHP会发生变化?我可以只用mysqli函数代替mysql函数吗?还有什么我应该知道的吗? 问题答案: 我建议您仔细阅读。有关您想做什么的很多有用信息,以及一个帮助工具。请参阅:转换为MySQLi。 只是PHP会发生变化。

  • 问题内容: 我有一个现有的PHP / MySQL应用程序,我正尝试将其迁移到AngularJS / Firebase,以作为学习这些较新技术的一种方式。 该应用程序在MySQL中具有自己的表架构。一个这样的表如下所示: 我的问题是:如何将这个表结构及其中的数据从MySQL迁移到Firebase? 我尝试通过查询将数据导出到JSON字符串中,例如: 这给出了有效的JSON字符串,例如: 我将其保存在

  • 问题内容: 关闭。 这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 我有一个包含大量数据的 SQL Server 数据库和一个空的 MySQL 数据库。现在,我想将SQL Server数据库的所有数据(包括数据库架构)复制到MySQL数据库。 我曾考虑过使用原始SQL转储,但是SQL Server的SQL语法与MyS

  • 问题内容: 我们的Oracle数据库遇到了严重的性能问题,我们想尝试将其迁移到基于MySQL的数据库(直接使用MySQL,或者最好是Infobright)。 问题是,在我们实际上不知道新数据库的所有功能是否符合我们的需求之前,我们需要让旧系统和新系统至少重叠数周(如果不是几个月)。 因此,这是我们的情况: Oracle数据库由多个表组成,每百万行。白天,实际上有成千上万的语句,我们无法停止迁移。

  • 添加了一些与CLANG相关的新属性: 如何配置项目以使用Xcode12.5部署此应用程序? $React-本机信息获取系统和库信息...System:OS:macOS 11.3 CPU:(4)x64 Intel(R)Core(TM)i3-8100B CPU@3.60 GHz内存:256.45MB/8.00 GB shell:3.2.57-/bin/bash二进制文件:node:10.16.0-/u

  • 问题内容: 使用Mono将.NET Windows服务迁移到Linux的最佳方法是什么?我一直在尝试避免将应用程序作为计划的命令执行。 是否有可能获得类似行为的服务/系统守护进程(在Linux中)? 问题答案: 在Linux下,重罪是简单的后台进程。没有特殊的控制方法(例如,)作为在Windows中。将服务构建为简单(控制台)应用程序,然后在后台运行它。使用类似于将程序作为Unix守护程序运行的工

  • 我升级为不和谐。JSV12,但它破坏了我现有的v11代码。下面是一些导致错误的示例: 如何将代码迁移到Discord。JSV12并修复这些错误?在哪里可以看到v12引入的突破性更改?