MariaDB-5.5.32源码编译安装

    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一键安装包》和《OneinStack

    1. cd /root/lnmp/src
    2. wget -c http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.32/kvm-tarbake-jaunty-x86/mariadb-5.5.32.tar.gz
    3. useradd -M -s /sbin/nologin mysql
    4. mkdir -p /data/mariadb;chown mysql.mysql -R /data/mariadb
    5. tar xzf cmake-2.8.11.2.tar.gz
    6. cd cmake-2.8.11.2
    7. ./configure
    8. make &&  make install
    9. cd ..
    10. tar zxf mariadb-5.5.32.tar.gz
    11. cd mariadb-5.5.32
    12. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
    13. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    14. -DMYSQL_DATADIR=/data/mariadb \
    15. -DSYSCONFDIR=/etc \
    16. -DMYSQL_USER=mysql \
    17. -DMYSQL_TCP_PORT=3306 \
    18. -DWITH_XTRADB_STORAGE_ENGINE=1 \
    19. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    20. -DWITH_PARTITION_STORAGE_ENGINE=1 \
    21. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    22. -DWITH_MYISAM_STORAGE_ENGINE=1 \
    23. -DWITH_READLINE=1 \
    24. -DENABLED_LOCAL_INFILE=1 \
    25. -DWITH_EXTRA_CHARSETS=1 \
    26. -DDEFAULT_CHARSET=utf8 \
    27. -DDEFAULT_COLLATION=utf8_general_ci \
    28. -DEXTRA_CHARSETS=all \
    29. -DWITH_BIG_TABLES=1 \
    30. -DWITH_DEBUG=0
    31. make && make install
    32. /bin/cp support-files/my-small.cnf /etc/my.conf
    33. /bin/cp support-files/mysql.server /etc/init.d/mysqld
    34. chmod +x /etc/init.d/mysqld
    35. chkconfig --add mysqld
    36. chkconfig mysqld on
    37. cd ..
    38. # my.cf
    39. cat > /etc/my.cnf << EOF
    40. [mysqld]
    41. basedir = /usr/local/mariadb
    42. datadir = /data/mariadb
    43. pid-file = /data/mariadb/mariadb.pid
    44. character-set-server = utf8
    45. collation-server = utf8_general_ci
    46. user = mysql
    47. port = 3306
    48. default_storage_engine = InnoDB
    49. innodb_file_per_table = 1
    50. server_id = 1
    51. log_bin = mysql-bin
    52. binlog_format = mixed
    53. expire_logs_days = 7
    54. bind-address = 0.0.0.0
    55. # name-resolve
    56. skip-name-resolve
    57. skip-host-cache
    58. #lower_case_table_names = 1
    59. ft_min_word_len = 1
    60. query_cache_size = 64M
    61. query_cache_type = 1
    62. skip-external-locking
    63. key_buffer_size = 16M
    64. max_allowed_packet = 1M
    65. table_open_cache = 64
    66. sort_buffer_size = 512K
    67. net_buffer_length = 8K
    68. read_buffer_size = 256K
    69. read_rnd_buffer_size = 512K
    70. myisam_sort_buffer_size = 8M
    71. # LOG
    72. log_error = /data/mariadb/mariadb-error.log
    73. long_query_time = 1
    74. slow_query_log
    75. slow_query_log_file = /data/mariadb/mariadb-slow.log
    76. # Oher
    77. #max_connections = 1000
    78. open_files_limit = 65535
    79. [client]
    80. port = 3306
    81. EOF
    82. /usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/data/mariadb
    83. chown mysql.mysql -R /data/mariadb
    84. /sbin/service mysqld start
    85. export PATH=$PATH:/usr/local/mariadb/bin
    86. echo 'export PATH=$PATH:/usr/local/mariadb/bin' >> /etc/profile
    87. source /etc/profile
    88. /usr/local/mariadb/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by "dbrootpwd" with grant option;"
    89. /usr/local/mariadb/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by "dbrootpwd" with grant option;"
    90. /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "delete from mysql.user where Password='';"
    91. /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "delete from mysql.db where User='';"
    92. /usr/local/mariadb/bin/mysql -uroot -pdbrootpwd -e "drop database test;"
    93. /sbin/service mysqld restart

    Tue Aug 13 17:58:03 CST 2013

    • 本文由 发表于 2013-08-13
    • 转载请务必保留本文链接:https://linuxeye.com/352.html
    MySQL/MariaDB/Percona数据库升级脚本 脚本

    MySQL/MariaDB/Percona数据库升级脚本

    MySQL/MariaDB/Percona数据库升级脚本截取《OneinStack》中upgrade_db.sh,一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们。为防止大版本之间兼容问题,...
    Consul集群配置 Linux

    Consul集群配置

    consul原理 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Se...
    匿名

    发表评论

    匿名网友