标签 MariaDB 下的文章

大家好!这是一篇介绍如何在服务器或个人电脑上从MySQL迁移到MariaDB的教程。也许你会问为什么我们要将数据库管理从MySQL迁移到MariaDB。往下看我们告诉你为什么这样做。

为什么要用MariaDB来代替MySQL

MariaDB是MySQL社区开发的分支,也是一个增强型的替代品。它由MySQL前开发者们带头组织的基金会开发,使用起来和MySQL完全一样。自从Oracle买下了MySQL,它就不再自由开源了,但是 MariaDB仍然自由开源。一些如谷歌、维基、LinkedIn、Mozilla等的顶级的网站已经迁移到MariaDB了。它的优势在哪里:

  • 向后兼容MySQL
  • 永远开源
  • 由MySQL缔造者的维护
  • 更尖端的功能
  • 更多的存储引擎
  • 大型的网站已经转向MariaDB

现在,让我们迁移到MariaDB吧!

让我们创建一个叫linoxidedb用于测试的示例数据库。

使用以下命令用root账户登陆MySQL:

$ mysql -u root -p

输入mysql 的 root 用户密码后,你将进入mysql的命令行

创建测试数据库:

在mysql命令行输入以下命令以创建测试数据库。

mysql> create database linoxidedb;

查看可用的数据库,输入以下命令:

mysql> show databases;

creating test databases

如你所见,算上刚刚新建的linoxidedb我们一共有5个数据库。

mysql> quit

现在,我们就将刚创建的数据库从MySQL迁移到MariaDB。

注:使用CentOS这类基于fedora的linux发行版没有必要参考这篇教程,因为它们在安装MariaDB时会自动代替MySQL,无需备份现有的数据库,你只需要更新mysql就可以得到mariadb。

1. 备份现有的数据库

我们第一个重要的步骤就是备份现有的数据库。我们在终端(不是MySQL命令行)里输入如下命令来完成备份。

$ mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql

哇哦!我们遇到了点麻烦。别担心我们可以搞定。

$ mysqldump: Error: Binlogging on server not active

mysqldump error

为了修复这个错误,我们需要对my.cnf文件做一些小改动。

编辑my.cnf文件:

$ sudo nano /etc/mysql/my.cnf

在[mysqld]部分添加如下参数。

log-bin=mysql-bin

configuring my.cnf

好了,在保存并关闭文件后,我们需要重启一下mysql服务。运行以下命令重启:

$ sudo /etc/init.d/mysql restart

现在,重新运行mysqldump命令来备份所有的数据库。

$ mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql

dumping databases

上面的命令将会备份所有的数据库,把它们存储在当前目录下的backupdatabase.sql文件中。

2. 卸载MySQL

首先,我们得把my.cnf文件挪到安全的地方去

:在你卸载MySQL包的时候不会自动删除my.cnf文件,我们这样做只是以防万一。在MariaDB安装时,它会询问我们是保持现存的my.cnf文件,还是使用包中自带的版本(即新my.cnf文件)。

在shell或终端中输入如下命令来备份my.cnf文件:

$ sudo cp /etc/mysql/my.cnf my.cnf.bak

运行命令来终止mysql服务:

$ sudo /etc/init.d/mysql stop

然后移除mysql包:

$ sudo apt-get remove mysql-server mysql-client

uninstalling mysql

3. 安装MariaDB

这是在Ubuntu系统中安装MariaDB的命令:

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
# sudo add-apt-repository 'deb http://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'

adding mariadb repo

键值导入并且添加完仓库后,你就可以用以下命令安装MariaDB了:

$ sudo apt-get update
$ sudo apt-get install mariadb-server

installing mariadb

my.conf configuration prompt

我们应该还没忘记在MariaDB安装时,它会问你是使用现有的my.cnf文件,还是包中自带的版本。你可以使用以前的my.cnf也可以用包中自带的。即使你想直接使用新的my.cnf文件,你依然可以晚点时候将以前的备份内容还原进去(别忘了我们已经将它复制到安全的地方了)。所以,我们直接选择了默认的选项“N”。如果需要安装其他版本,请参考MariaDB官方仓库

4. 恢复配置文件

想要将my.cnf.bak中的内容恢复到my.cnf,在终端中输入以下命令。由于my.cnf.bak文件在当前目录下,所以我们只要简单的执行以下命令即可:

$ sudo cp my.cnf.bak /etc/mysql/my.cnf

5. 导入数据库

最后,让我们把我们之前创建的数据库导入吧!运行一下命令即可完成导入。

$ mysql -u root -p < backupdatabase.sql

就这样,我们已成功将之前的数据库导入了进来。

来,让我们登录一下mysql命令行,检查一下数据库是否真的已经导入了:

$ mysql -u root -p

importing database

为了检查数据库是否被迁移到MariaDB,请在MariaDB命令行中输入“show databases;”不用输入(“”),如下:

mariaDB> show databases;

mysql to mariadb database migrated

如你所见,linoxidedb及所有的数据库都已经成功的被迁移了。

总结

最后,我们已经成功地从MySQL迁移到了MariaDB数据库管理系统。MariaDB比MySQL好,虽然在性能方面MySQL还是比它更快,但是MariaDB的优点在于它额外的特性与支持的许可证。这能够确保它自由开源(FOSS),并永久自由开源,相比之下MySQL还有许多额外的插件,有些不能自由使用代码、有些没有公开的开发进程、有些在不久的将来会变的不再自由开源。如果你有任何的问题、评论、反馈给我们,不要犹豫直接在评论区留下你的看法。谢谢观看本教程,希望你能喜欢MariaDB。


via: http://linoxide.com/linux-how-to/migrate-mysql-mariadb-linux/

作者:Arun Pyasi 译者:martin2011qi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

MariaDB是一个开源数据库且100%与MySQL兼容,目标是替代MySQL数据库。

MariaDB的背景 :

2008年,MySQL被后来被Oracle在2010年收购的Sun Microsystems收购了。 最初被Sun公司的收购由于符合项目的需要而受到MySQL社区的欢呼,但是这种情绪并没有持续太久,接下来被Oracle的收购,不幸期望远远低于预期。许多MySql的开发者离开了Sun和Oracle公司开始新的项目。在他们中间就有MySQL的创建者以及项目长期技术带头人之一的Michael ‘Monty’ Widenius。Monty和他的团队创建了MySQL的一个fork版本并且命名它为MariaDB

本篇我们会讨论如何在Ubuntu上安装MariaDB。默认上MariaDB的包并没有在Ubuntu仓库中。要安装MariaDB,我们首先要设置MariaDB仓库。

设置 MariaDB 仓库

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
$ sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

安装 MariaDB :

$ sudo apt-get update
$ sudo apt-get install mariadb-server

在安装中,你会被要求设置MariaDB的root密码。

从命令行连接到MariaDB :

linuxtechi@mail:~$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 40
Server version: 10.0.14-MariaDB-1~trusty-log mariadb.org binary distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

MariaDB 服务

$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/mysql start

via: http://www.linuxtechi.com/install-mariadb-in-ubuntu/

作者:Pradeep Kumar 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Ubuntu 13.10发布前后引起了很大的反响。这个操作系统让Canonical达到了一个全新的等级,尤其是在2013年这样一个Linux大年。但现在已经尘埃落定,外界的声音也小了,让我们看看这个系统让你喜欢的五件事,和让你讨厌的五件事。

OpenStack APIs:Ubuntu 13.10兼容OpenStack APIs。事实上,内部和外部Ubuntu-主机云现在与OpenStack APIs兼容。

GUI: Unity的GUI正在从个人电脑到智能手机和平板电脑很好的转变。

升级后的Dashboard: 为用户提供了搜索甚至是Ubuntu One cloud的Ubuntu Dash已经升级了。

好用的Juju: 在活泼的火蜥蜴中,您可以使用Juju在Linux容器或LXC中创建应用程序实例。

GUI更加顺滑:也许正因为它的多功能性,活泼的火蜥蜴的漂亮的用户界面比过去版本的用户界面更为顺滑。

没有Mir: Unity界面还没有从X.org转移到Mir 编译器。这是让很多人失望的主要的地方。

没有MariaDB: MySQL数据库的替代产品——MariaDB尚未被Canonical引入。这与其说让人失望,不如说是让人震惊,因为大多数其他发行版已经这么做了。Canonical的Ubuntu 13.10还在用MySQL作为LAMP的默认数据库。

老版本的landscape管理工具:Canonical的landscape服务还不够先进,实际上,甚至比微软的跟着Windows发布的系统中心还要古老。

只支持两款手机:现在只有Galaxy Nexus4和Galaxy Nexus智能手机支持Ubuntu 13.10。此外,这两个设备只能使用核心和shell程序。

LXC仍然是测试版: 我们说Juju和LXC一起使用,但LXC本身仍在测试模式。它今年2月应该能出一个稳定版。


via: http://www.networkworld.com/slideshow/134353/ubuntu-1310-5-things-we-love-5-things-we-hate.html

译者:Kingname 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出