| CSDN | GitHub |
|---|---|
| Ubuntu 14.04(Trusty)安装MariaDB 10数据库 | AderXCoding/system/tools/mariadb |
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请注明出处
之前一直在使用MysqL,但是后来对比之后还是选择了MariaDB,现在想在自己的服务器和本子上安装上MariaDB,但是Ubuntu14.04源中的版本仍然是5.5,想在本子上装个新的体验下,网上看了写教程,都好老了,很少有装10的,少数有的也都是直接沾了PPA源,但是源从哪里来的也是一头雾水,因此有了这篇博客, 水平有限,欢迎交流指正.
1 MariaDB介绍
1.1 MariaDB数据库
MariaDB 数据库管理系统是 MysqL 的一个分支,MariaDB努力想成为那些寻求专业的、健壮的、可扩展的、可靠的的 sql 数据库服务的理想选择. 为了达成这个目标,MariaDB 基金会与开源社区的用户和开发者以自由和开源软件的精神共同开发着 MariaDB 数据库管理系统,并且以保证可靠性的前提下来开发新的功能的方式来发布这个软件.
MariaDB数据库管理系统主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MysqL,包括API和命令行,使之能轻松成为MysqL的代替品。
在存储引擎方面,使用XTradB(英语:XTradB)来代替MysqL的InnoDB. MariaDB基于事务的Maria存储引擎,替换了MysqL的MyISAM存储引擎,它使用了Percona的 XTradB,InnoDB的变体
1.2 诞生
MariaDB由MysqL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MysqL AB卖给了SUN,此后,随着SUN被甲骨文收购,MysqL的所有权也落入Oracle的手中. MariaDB名称来自Michael Widenius的女儿Maria的名字.
MysqL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MysqL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB.
MariaDB跟MysqL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同. 目前MariaDB是发展最快的MysqL分支版本,新版本发布速度已经超过了Oracle官方的MysqL版本。
在Oracle控制下的MysqL开发,有两个主要问题 :
MysqL核心开发团队是封闭的,完全没有Oracle之外的成员参加. 很多高手即使有心做贡献,也没办法做到.MysqL新版本的发布速度,在Oracle收购Sun之后大为减缓.Widenius有一个ppt,用数据比较了收购之前和之后新版本的发布速度. 有很多bugfix和新的feature,都没有及时加入到发布版本之中.
以上这两个问题,导致了各个大公司,都开发了自己定制的MysqL版本,包括Facebook,Google,阿里巴巴等等.
MysqL是开源社区的资产,任何个人/组织都无权据为己有. 为了依靠广大MysqL社区的力量来更快速的发展MysqL,另外开分支是必须的。
MariaDB默认的存储引擎是Maria,不是MyISAM. Maria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响. 可以通过以下语句,转换为支持事务的Maria引擎.
ALTER TABLE `tablename` ENGINE=MARIA TRANSACTIONAL=1;
2 安装MariaDB
2.1 源中直接安装 MariaDB 5.5
Ubuntu 14.04 的源中已经包含了 MariaDB 数据库,参见
http://packages.ubuntu.com/trusty/mariadb-server
因此可以直接安装,版本是 5.5.52
sudo apt-get install mariadb-server
2.2 安装 MariaDB 10
- 下载源码包或者二进制包安装
如果想要安装新的版本,需要上官网下载其安装包
下载地址 https://downloads.mariadb.org
- 使用官方提供的源进行安装
我们选择repository configuration tool,或者直接进入
https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna
选择我们对应的系统和环境,我的环境是Ubuntu 14.04,选择安装 MariaDB 10.0,选择的是清华大学的源
然后系统会提示我们需要添加的源和安装命令,如下所示
添加源
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 [arch=amd64,i386,ppc64el] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main'
或者你可以手动的方式在 apt 源文件中写入 mariadb 源的信息,你可以直接将如下信息写在 /etc/apt/sources.list,或者如果你不想污染源的主配置文件,可以在 /etc/apt/sources.list.d下,创建名为MariaDB sources.list的源文件,这个文件的名字可以随意,但是一般为了便于区分,还是以软件包的名字名为好,比如我起的名字就是mariadb-ppa-trusty.list,创建完成后将如下信息写入
# MariaDB 10.0 repository list - created 2016-11-05 12:47 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main
deb-src http://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.0/ubuntu trusty main
安装mariadb数据库
sudo apt-get update sudo apt-get install mariadb-server
参见 https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/
3 配置mariadb
- 若要更改或设置MariaDB密码
方法1: 用SET PASSWORD命令
MysqL -u root
MysqL> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用MysqLadmin
MysqLadmin -u root password "newpass"
如果root已经设置过密码,采用如下方法
MysqLadmin -u root password oldpass "newpass"
方法3: 用UPDATE直接编辑user表
MysqL -u root
MysqL> use MysqL;
MysqL> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
MysqL> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
MysqLd_safe --skip-grant-tables&
MysqL -u root MysqL
MysqL> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
MysqL> FLUSH PRIVILEGES;
- 启动MariaDB
service MysqL start
- 确认 MariaDB 已经启动
netstat -tulnp | grep MysqL

或者
service MysqL status

- 登陆MariaDB
本地机器登陆
MysqL -uroot -pyourpassword
如果是本机,那可以直接使用上面的命令登录,当然,需要输入密码. 如果是远程机器(与MariaDB 所处不同的机器),那么可能需要如下的形式:
其中xxx.xxx.xxx.x 为MariaDB所在机器的IP 或者机器名
MysqL -h xxx.xxx.xxx.x -P 3306 -uroot -pyourpassword
- 简单sql测试
MariaDB [(none)]> use MysqL
MariaDB [MysqL]> select count(*) from user;
+----------+
| count(*) |
+----------+
| 5 |
+----------+
1 row in set (0.00 sec)
想了解更多的关于MariaDB请访问如下的网站 : MariaDB documentation
4 参考资料
在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)
MariaDB Proxy读写分离的实现
Linux下编译安装配置MariaDB数据库的方法
CentOS系统使用yum安装MariaDB数据库
安装MariaDB与MySQL并存
Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10
关于远程访问及防火墙设置请参考以下这篇文章
reference documents
是时候放弃MySQL的五大理由
CentOS6.5上安装MariaDB
CentOS安装并设置MariaDB