MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:Oracle公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。

MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被Oracle收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

2008年,Sun收购MySQL,然后2010年Oracle又收购了Sun,MySQL落入了Oracle手中。Oracle与开源社区关系的 一直不太好,将MySQL弄成了社区版和企业版,不能免费商业使用。MySQL企业版的新功能不公开源代码,这样让用户很不爽。MariaDB 则没有这方面的问题。

有必要从MySQL切换到MariaDB实例:

  1. Red Hat企业发行版RHEL 7可能会使用MariaDB替代MySQL,一旦RHEL完成切换,基于RHEL的社区版CentOS将会紧跟着作出改变
  2. Fedora也计划在Fedora 19中的以MariaDB取代MySQL
  3. 维基百科已经使用MariaDB取代了MySQL

与MySQL相比,MariaDB的优势在于:

  • Maria 存储引擎
  • PBXT 存储引擎
  • XtraDB 存储引擎
  • FederatedX 存储引擎
  • 更快的复制查询处理
  • 线程池
  • 更少的警告和bug
  • 运行速度更快
  • 更多的 Extensions (More index parts, new startup options etc)
  • 更好的功能测试
  • 数据表消除
  • 慢查询日志的扩展统计
  • 支持对 Unicode 的排序

MariaDB将添加到《lnmp一键安装包

cd /root/lnmp/source
wget -c http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/kvm-tarbake-jaunty-x86/mariadb-5.5.32.tar.gz
useradd -M -s /sbin/nologin mysql
mkdir -p /data/mariadb;chown mysql.mysql -R /data/mariadb
tar xzf cmake-2.8.11.2.tar.gz
cd cmake-2.8.11.2
./configure
make && make install
cd ..
tar zxf mariadb-5.5..tar.gz
cd mariadb-5.5.
cmake . -DCMAKE_INSTALL_PREFIX=$db_install_prefix \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mariadb \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT= \
-DWITH_XTRADB_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DENABLED_LOCAL_INFILE= \
-DWITH_EXTRA_CHARSETS= \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES= \
-DWITH_DEBUG=
make && make install /bin/cp support-files/my-small.cnf /etc/my.conf
/bin/cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
cd .. # my.cf
cat > /etc/my.cnf << EOF
[mysqld]
basedir = /usr/local/mariadb
datadir = /data/mariadb
pid-file = /data/mariadb/mariadb.pid
character-set-server = utf8
collation-server = utf8_general_ci
user = mysql
port =
default_storage_engine = InnoDB
innodb_file_per_table =
server_id =
log_bin = mysql-bin
binlog_format = mixed
expire_logs_days =
bind-address = 0.0.0.0 # name-resolve
skip-name-resolve
skip-host-cache #lower_case_table_names =
ft_min_word_len =
query_cache_size = 64M
query_cache_type = skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache =
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M # LOG
log_error = /data/mariadb/mariadb-error.log
long_query_time =
slow_query_log
slow_query_log_file = /data/mariadb/mariadb-slow.log # Oher
#max_connections =
open_files_limit = [client]
port =
EOF /usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/data/mariadb chown mysql.mysql -R /data/mariadb
/sbin/service mysqld start
export PATH=$PATH:/usr/local/mariadb/bin
echo 'export PATH=$PATH:/usr/local/mariadb/bin' >> /etc/profile
source /etc/profile /usr/local/mariadb/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by "dbrootpwd" with grant option;"
/usr/local/mariadb/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by "dbrootpwd" with grant option;"
/usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "delete from mysql.user where Password='';"
/usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "delete from mysql.db where User='';"
/usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "drop database test;"
/sbin/service mysqld restart

原文:http://blog.linuxeye.com/352.html

最新文章

  1. CSS继承的特殊性
  2. [转]嵌入式SQC文件编译
  3. Java异常(一) Java异常简介及其架构
  4. setinterval在jQuery里面是怎么使用的。
  5. phpcms v9 企业黄页系统发布没有表单出现的解决方案
  6. maya 写UI 用到的工具
  7. Python列表和字典的方法总结
  8. [转]Net Framework引路蜂地图开发示例
  9. Kubernetes的三种外部访问方式:NodePort、LoadBalancer和Ingress
  10. Python中什么是深拷贝和浅拷贝且有什么区别
  11. jsonp 的实质
  12. sql添加一个list的查询条件
  13. (转) Dissecting Reinforcement Learning-Part.2
  14. spring boot 多数据源配置与使用
  15. dedecms 5.7sp2在用type标签时出现调用无效问题
  16. nxn随机矩阵乘以概率向量依旧是概率向量
  17. Linux如何实现开机启动程序详解(转)
  18. git 分支管理——多人协作
  19. Command Network OpenJ_Bailian - 3436(最小有向生成树模板题)
  20. jQuery插件实现表格隔行换色且感应鼠标高亮行变色

热门文章

  1. Tornado,了解一下
  2. poj 1870 Bee Breeding
  3. 轻量级Java_EE企业应用实战-第5章Hibernate的基本用法-001
  4. SPRING IN ACTION 第4版笔记-第九章Securing web applications-010-拦截请求
  5. 在vs2010中mfc,C++的一些小经验
  6. php/ java/asp.net
  7. margin,border,padding简介
  8. 【HDOJ】4261 Estimation
  9. git整理纷乱的历史合并记录
  10. C#中的Marshal