系统: centos7.2 x64
数据库:MariaDB-10.0.30

使用jemalloc对MySQL内存进行优化。

软件包下载地址:http://pan.baidu.com/s/1eS44OKU 密码:ghe3

安装jemalloc

[root@mysql src]# tar xf jemalloc-4.2..tar.bz2
[root@mysql src]# cd jemalloc-4.2.
[root@mysql jemalloc-4.2.]# ./configure --prefix=/usr/local/jemalloc
[root@mysql jemalloc-4.2.]# make && make install
[root@mysql jemalloc-4.2.]# echo '/usr/local/jemalloc/lib/' > /etc/ld.so.conf.d/local.conf
[root@mysql jemalloc-4.2.]# ldconfig
[root@mysql jemalloc-4.2.]# ln -vs /usr/local/jemalloc/lib/libjemalloc.so. /usr/local/lib/libjemalloc.so

安装mariadb

[root@mysql src]# tar xf mariadb-10.0..tar.gz
[root@mysql src]# cd mariadb-10.0.
[root@mysql mariadb-10.0.]# yum install cmake openssl-devel zlib-devel ncurses-devel -y
[root@mysql mariadb-10.0.]# mkdir -pv /data/mysql/{data,bin_log,run,log,tmp}
[root@mysql mariadb-10.0.]# groupadd -g mysql
[root@mysql mariadb-10.0.]# useradd -u -g -s /sbin/nologin -M mysql
[root@mysql mariadb-10.0.]# cmake . -LH
[root@mysql mariadb-10.0.]# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DTMPDIR=/usr/local/mysql/tmp \
-DMYSQL_UNIX_ADDR=/data/mysql/run/mysqld.sock \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITH_PERFSCHEMA_STORAGE_ENGINE= \
-DWITH_FEDERATED_STORAGE_ENGINE= \
-DWITH_TOKUDB_STORAGE_ENGINE= \
-DWITH_XTRADB_STORAGE_ENGINE= \
-DWITH_ARIA_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DWITH_SPHINX_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DMYSQL_TCP_PORT= \
-DENABLED_LOCAL_INFILE= \
-DWITH_EXTRA_CHARSETS=all \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \
-DWITH_SAFEMALLOC=OFF \
-DWITH_DEBUG= \
-DENABLE_PROFILING= \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=
[root@bogon mariadb-10.0.]# make && make install

说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \       # 安装根目录
-DMYSQL_DATADIR=/data/mysql/data \          # 数据存储目录
-DTMPDIR=/data/mysql/tmp \               # 临时文件存放目录
-DMYSQL_UNIX_ADDR=/data/mysql/run/mysqld.sock \     # UNIX socket文件
-DSYSCONFDIR=/etc \                             # 配置文件存放目录
-DWITH_MYISAM_STORAGE_ENGINE=1 \            # Myisam 引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1  \       # innoDB 引擎支持
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \            # ARCHIVE 引擎支持
-DWITH_BLACKHOLE_STORAGE_ENGINE=1  \     # BLACKHOLE 引擎支持
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \     # PERFSCHEMA 引擎支持
-DWITH_FEDERATED_STORAGE_ENGINE=1  \     # FEDERATEDX 引擎支持
-DWITH_TOKUDB_STORAGE_ENGINE=1 \         # TOKUDB 引擎支持
-DWITH_XTRADB_STORAGE_ENGINE=1  \         # XTRADB 引擎支持
-DWITH_ARIA_STORAGE_ENGINE=1 \             # ARIA 引擎支持
-DWITH_PARTITION_STORAGE_ENGINE=1 \     # PARTITION 引擎支持
-DWITH_SPHINX_STORAGE_ENGINE=1 \         # SPHINX 引擎支持
-DWITH_READLINE=1 \                     # readline库
-DMYSQL_TCP_PORT=3306 \                 # TCP/IP端口
-DENABLED_LOCAL_INFILE=1  \             # 启用加载本地数据
-DWITH_EXTRA_CHARSETS=all \             # 扩展支持编码 ( all | utf8,gbk,gb2312 | none )
-DEXTRA_CHARSETS=all \                     # 扩展字符支持
-DDEFAULT_CHARSET=utf8 \                 # 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \     # 默认字符校对
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \ # Jemalloc内存管理库
-DWITH_SAFEMALLOC=OFF \                 # 关闭默认内存管理
-DWITH_DEBUG=0 \                        # 关闭调试模式        
-DENABLE_PROFILING=1 \                     # 启用性能分析功能
-DWITH_SSL=system \                        # 使用系统上的自带的SSL库
-DWITH_ZLIB=system \                     # 使用系统上的自带的zlib库
-DWITH_LIBWRAP=0                         # 禁用libwrap库

半个小时的等待。。。

[root@bogon mariadb-10.0.]# cd /usr/local/mysql/
[root@bogon mysql]# rpm -qf /etc/my.cnf
[root@bogon mysql]# rpm -e --nodeps mariadb-libs [root@bogon mysql]# grep -v ^# /etc/my.cnf | grep -v ^$
[client]
port =
socket = /data/mysql/run/mysqld.sock
[mysqld]
port =
socket = /data/mysql/run/mysqld.sock
datadir = /data/mysql/data/ # 新增数据存储目录
back_log =
max_connections =
max_connect_errors =
table_open_cache =
max_allowed_packet = 16M
binlog_cache_size = 1M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size =
thread_concurrency =
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len =
default-storage-engine = INNODB # 修改存储引擎为INNODB
thread_stack = 240K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=mysql-bin
binlog_format=mixed
slow_query_log
long_query_time =
server-id =
key_buffer_size = 32M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads =
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
innodb_data_file_path = ibdata1:10M:autoextend
innodb_write_io_threads =
innodb_read_io_threads =
innodb_thread_concurrency =
innodb_flush_log_at_trx_commit =
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group =
innodb_max_dirty_pages_pct =
innodb_lock_wait_timeout =
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit =
log-error = /data/mysql/log/mariadb.log # 指定log-file目录
pid-file = /data/mysql/run/mysqld.pid # 指定pid目录

其他参数请自行调整。

[root@bogon mysql]# cp -a support-files/mysql.server /etc/init.d/mysqld
[root@bogon mysql]# chmod +x /etc/init.d/mysqld
[root@bogon mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data/
[root@bogon mysql]# service mysqld start
Starting MySQL. :: mysqld_safe Logging to '/data/mysql/log/mariadb.log'.
:: mysqld_safe Starting mysqld daemon with databases from /data/mysql/data/
SUCCESS! [root@bogon mysql]# ss -ntlp | grep mysqld
LISTEN *: *:* users:(("mysqld",pid=,fd=))

OK, 启动成功。

[root@bogon mysql]# cd bin/
[root@bogon bin]# pwd
/usr/local/mysql/bin
[root@bogon bin]# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh
[root@bogon bin]# source /etc/profile.d/mysql.sh
[root@bogon bin]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 10.0.-MariaDB Source distribution Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

查看jemalloc是否生效:

[root@bogon bin]# yum install lsof -y
[root@bogon bin]# lsof -n | grep jemalloc
mysqld mysql mem REG , /usr/local/jemalloc/lib/libjemalloc.so.
mysqld mysql mem REG , /usr/local/jemalloc/lib/libjemalloc.so.
...

Centos 7.2编译安装MariaDB-10.0.xx的更多相关文章

  1. CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5.3 5.4 5.5 5.6 7.0 7.1多版本全能环境

    准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  2. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.132013-10-24 15:31:12标签:服务器 防火墙 file 配置文件 written 一.配置好I ...

  3. CentOS 7.4 如何安装 MariaDB 10.3.9 Stable 数据库

    CentOS 7.4 如何安装 MariaDB 10.3.9 Stable 数据库 一.CentOS 7.4上卸载 Mariadb 数据库 1.查询所安装的MariaDB组件 [libin@VM_0_ ...

  4. CentOS7 编译安装 nginx-1.10.0

    对于NGINX 支持epoll模型 epoll模型的优点 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的 ...

  5. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2

    说明: 操作系统:CentOS 6.2 32位 系统安装教程:CentOS 6.2安装(超级详细图解教程): http://www.osyunwei.com/archives/1537.html 准备 ...

  6. linux下编译安装MariaDB 10.4.7,解决错误:cannot access ‘/auth_pam_tool_dir’: No such file or directory

    编译安装MariaDB 10.4.7,前面的步骤我就不复述了,一切正常没什么问题. 当执行到:scripts/mysql_install_db --basedir=/usr/local/mysql - ...

  7. CentOS 7.4编译安装Nginx1.10.3+MySQL5.7.16

    准备篇 一.防火墙配置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.se ...

  8. centos6.5环境使用RPM包离线安装MariaDB 10.0.20

    1. 进入MariaDB官网下载MariaDB需要的RPM包 2. 使用下载软件下载所需要的RPM包, 总共4个, 并上传到CentOS主机指定目录. MariaDB-10.0.20-centos6- ...

  9. CentOS 7.2编译安装nginx1.10.3+MySQL5.5.38+PHP5.5.38

    1.关闭firewallad 关闭防火墙 systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.ser ...

  10. Windows XP SP3下编译安装check-0.10.0

    软件环境:visual studio 2010 cmake-3.6.3-win32-x86 从github.com下载check-0.10.0到本地,解压出目录check-0.10.0 下载cmake ...

随机推荐

  1. I.MX6 Android 5 root

    /********************************************************************************* * I.MX6 Android 5 ...

  2. try...except语句

    try: 执行语句 except 执行语句有异常就执行这一步 else: 执行语句没有异常就执行这一步 finally 不管有没有异常,这一步就要执行

  3. c语言 判断文件是否存在

    使用access函数 功能: 检查调用进程是否可以对指定的文件执行某种操作. 用法: #include <unistd.h> #include <fcntl.h> int ac ...

  4. 随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题

    随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题 问题来源 一位小伙伴在使用 Ueditor 插件时出错,因为用的是 php7.1 ...

  5. wamp安装后无法正常启动(80端口被占用)

    关于wamp启动是80端口被占用的问题详解(win7系统下WAMP 80端口被Microsoft-HTTPAPI/2.0占用的解决办法) VS2010在更新了SP1后,会在开机时自动启动一个服务,占用 ...

  6. CentOS 6.0 VNC远程桌面配置方法(转帖)

    问题:新装开发机,安装VNC软件后,按照下面文档配置后,无法用VNC view连接,关闭防火墙后可以连上 解决方法:说明问题出在防火墙配置上,除了允许15900端口外,还有其他要设,经过排查后,加上如 ...

  7. Web验证方式(1)--Http Basic Authentication

    Http Basic Authentication是HTTP协议中定义的Web系统中的验证方式.参考wiki 主要的实现机制如下: 1. 用户通过浏览器匿名访问web资源. 2. web服务器检测到w ...

  8. 虚拟机Linux桥接模式下设置静态IP

    之前一直使用NAT模式,测试时android端远程访问虚拟机的mysql时发现无法连接,但是访问同学拷过来的虚拟机Linux的mysql却成功了,想了下原因是他设置的桥接模式.关于两种模式的区别,网上 ...

  9. 关于web api 中 日期格式问题解决方案

    在构造函数或者 全局开始的时候调用这个 public BossApiController() { JsonMediaTypeFormatter jsonFormatter = GlobalConfig ...

  10. bat文件

    bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cm ...