centos6.5 MariaDB-5.5.42源码编译安装

来源:互联网 发布:数据统计分析的作用 编辑:程序博客网 时间:2024/06/06 18:09

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/srcwget -c http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/kvm-tarbake-jaunty-x86/mariadb-5.5.32.tar.gzuseradd -M -s /sbin/nologin mysqlmkdir -p /data/mariadb;chown mysql.mysql -R /data/mariadbtar xzf cmake-2.8.11.2.tar.gzcd cmake-2.8.11.2./configuremake &&  make installcd ..tar zxf mariadb-5.5.32.tar.gzcd mariadb-5.5.32cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DMYSQL_DATADIR=/data/mariadb \-DSYSCONFDIR=/etc \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306 \-DWITH_XTRADB_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DWITH_EXTRA_CHARSETS=1 \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=all \-DWITH_BIG_TABLES=1 \-DWITH_DEBUG=0make && make install/bin/cp support-files/my-small.cnf /etc/my.conf/bin/cp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld oncd ..# my.cfcat > /etc/my.cnf << EOF[mysqld]basedir = /usr/local/mariadbdatadir = /data/mariadbpid-file = /data/mariadb/mariadb.pidcharacter-set-server = utf8collation-server = utf8_general_ciuser = mysqlport = 3306default_storage_engine = InnoDBinnodb_file_per_table = 1server_id = 1log_bin = mysql-binbinlog_format = mixedexpire_logs_days = 7bind-address = 0.0.0.0# name-resolveskip-name-resolveskip-host-cache#lower_case_table_names = 1ft_min_word_len = 1query_cache_size = 64Mquery_cache_type = 1skip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8M# LOGlog_error = /data/mariadb/mariadb-error.loglong_query_time = 1slow_query_logslow_query_log_file = /data/mariadb/mariadb-slow.log# Oher#max_connections = 1000open_files_limit = 65535[client]port = 3306EOF/usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/data/mariadbchown mysql.mysql -R /data/mariadb/sbin/service mysqld startexport PATH=$PATH:/usr/local/mariadb/binecho 'export PATH=$PATH:/usr/local/mariadb/bin' >> /etc/profilesource /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

0 0