MySQL配置

  sre

5fcef4b9a53d33818.jpg_fo742.jpg
my.cnf 默认是不存在的.你可以在/usr/local/share /mysql/下看到:
1. my-huge.cnf
2. my-innodb-heavy-4G.cnf
3. my-large.cnf
4. my-medium.cnf
5. my-small.cnf
等文 件.将其中合适你机器配置的文件拷贝到/etc/my.cnf或mysql data目录/my.cnf(/var/db/mysql)下或~/.my.cnf.文件内都有详细的说明
系统默认是按/etc/my.cnf—–/etc/mysql/my.cnf—-/usr/local/mysql/my.cnf的顺序读取配置文件的,当有多个配置文件时,mysql会以读取到的最后一个配置文件中的参数为准。

port =3306 defualt port
socket =/tmp/mysql.sock 只适用于Linux,不使用TCP/IP。
back_log=300 mysql暂时停止响应请求前,短时间存在堆栈内的请求数量.如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。(试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。)
skip-networking 不在TCP/IP端口监听,只使用本地socket
skip-locking 不使用外部锁,减少出错几率,增强稳定性。
skip-name-resolve 禁用DNS,只能用IP连接
max_connections=300 允许的最大连接数
max_connect_errors = 1000 每个主机连接允许异常中断的次数
table_cache = 614k 表的高速缓冲区的大小
max_allowed_packet = 4M 一次可以传输消息的最大值,系统默认为1M,最大可以是1G
sort_buffer_size = 16M 排序缓冲区用来处理类似orderby以及groupby队列所引起的排序,系统默认大小为2M,该参数对应分配内存是每个连接独占的,若有100个连接,
实际分配的排序缓冲区大小为6*100;推荐设置为6M-8M。注意:该参数对应的分配内存是每连接独占!
join_buffer_size=8M 联合查询操作所使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!

thread_concurrency = 8
该参数取值为服务器逻辑CPU数量×2,比如服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8
thread_cache_size = 64 设置threadcache池中可以缓存连接线程的最大数量,默认为0,该值表示可以重新利用保存在缓存中线程的数量,
当断开连接时若缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,若果缓存中是空的或者是新的请求,
那么线程将被重新创建。设置规律为:1G内存设置为8,2G内存设置为16,4G以上设置为64。注意:该参数对应的分配内存是每连接独占!
query_cache_size = 64M
指定mysql查询缓冲区的大小,用来缓冲select的结果,并在下一次同样查询的时候不再执行查询而直接返回结果,根据Qcache_lowmem_prunes的大小,来查看当前的负载是否足够高.
可以通过在MySQL控制台执行以下命令观察:
代码:

> SHOW VARIABLES LIKE ‘%query_cache%’;

> SHOW STATUS LIKE ‘Qcache%’;

如果 Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
如果Qcache_hits的值非常大,则表明查询缓冲使 用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。

query_cache_limit = 4M
只有小于该值的结果才被缓冲,放置一个极大的结果将其他所有的查询结果都覆盖
tmp_table_size 256M
内存临时表的大小,如果超过该值,会将临时表写入磁盘
default_storage_engine = MYISAM
创建表时默认使用的存储引擎
log-bin=mysql-bin
打开二进制日志功能
key_buffer_size = 384M
指定索引缓冲区的大小,,增加它可得到更好的索引处理性能。.内存为4G时刻设置为256M或384M.该参数值设置的过大反而会使服务器整体效率降低!
read_buffer_size = 8M
用来做MYISAM表全表扫描的缓冲大小

原文:http://www.linuxidc.com/Linux/2013-09/90110.htm
http://www.cnblogs.com/derrck/archive/2010/07/29/1787856.html

3 thoughts on - MySQL配置

  • 粗略查看mysql记录数:
    use information_schema;
    select table_name,table_rows from tables
    where TABLE_SCHEMA = ‘testDB’
    order by table_rows desc;

  • mysql安装:
    数据库配置文件:/etc/my.cnf
    1.彻底卸载数据库(避免安装后期出错),命令如下:
    yum remove mysql mysql-server mysql-libs mysql-connector
    2.安装必须编译环境及必须的依赖包:
    yum –y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
    3.创建mysql安装目录及创建用户
    mkdir -p /opt/database/datadir #data文件目录 mkdir -p /opt/database/basedir #base文件目录
    groupadd mysql #创建mysql用户组 useradd -g mysql mysql #创建mysql用户并归属到mysql用户组
    chown -R mysql.mysql /opt/database/datadir #修改数据文件归属
    4.安装二进制文件编译环境
    wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
    tar zxvf cmake-2.8.4.tar.gz cd cmake-2.8.4
    ./configure make && make install
    5.下载mysql
    $ wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.6.16.tar.gz
    tar zxvf mysql-5.6.16.tar.gz
    6.编译mysql5.6.16,指定安装目录,数据目录和端口号
    cd mysql-5.6.16
    cmake . -DCMAKE_INSTALL_PREFIX=/opt/database /basedir/
    -DMYSQL_DATADIR=/opt/database /datadir
    -DMYSQL_UNIX_ADDR=/opt/database /datadir/mysql.sock
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_FEDERATED_STORAGE_ENGINE=1
    -DENABLED_LOCAL_INFILE=1
    -DMYSQL_TCP_PORT=3306
    -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DMYSQL_USER=mysql
    -DWITH_DEBUG=0
    -DWITH_READLINE=1
    -DENABLE_PROFILING=1
    7.完成安装
    make && make install
    8.添加数据库到服务
    cp support-files/my-medium.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    9.初始化数据库
    ./scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql/
    10.启动数据库
    $ service mysqld start

LEAVE A COMMENT

Captcha Code