./configure --prefix=/usr/local/mysql \
--without-debug \ #去除 debug 模式.
--enable-thread-safe-client \ #以线程方式编译客户端.
--with-pthread \ #强制使用 pthread 线程库编译.
--enable-assembler \ #允许使用汇编模式.
--enable-profiling\ #Build a versionwith query profiling code (req.community-features)
--with-mysqld-ldflags=-all-static \ #静态编译 mysqld 的额外 link 参数.
--with-client-ldflags=-all-static \ #静态编译 client 的额外 link 参数.
--with-charset=utf8 \ #默认字符 utf8.
--with-extra-charsets=all \ #支持所有的语言字符.
--with-innodb \ #innodb 数据引擎.
--with-plugins=innobase \
--with-plugins=heap \ #内存数据引擎.
--with-mysqld-user=mysql \ #mysql安装使用的帐号
--without-embedded-server \ #去除安装 embedded-server.
--with-server-suffix=-community \ #社区形式安装.
--with-unix-socket-path=/tmp/mysql.sock
MYSQl 启动的一般设置:
/etc/my.cnf 基本部设参数设置.
# back_log 是操作系统在监听队列中所能保持的连接数,
# 队列保存了在 MySQL 连接管理器线程处理之前的连接.
# 如果你有非常高的连接率并且出现"connection refused" 报错,
# 你就应该增加此处的值.
# 检查你的操作系统文档来获取这个变量的最大值.
# 如果将 back_log 设定到比你操作系统限制更高的值,将会没有效果
# 在 MYSQL 的连接请求等待队列中允许存放的最大连接请求数. defautl=50,最大 65535,根 据 os 对网络监听队列的情况来设置.
back_log =20000
# MySQL 服务所允许的同时会话数的上限
# 其中一个连接将被 SUPER 权限保留作为管理员登录.
# 即便已经达到了连接数的上限.
# 整个 Mysql 允许的最大连接数.这个参数会影响 mysql 的应用并发处理能力.有些资料上提 到 500-800,以我们的机子来说单个 mysql 实例设置 10000 应该是没有问题的。如果还需可能需要第三方软件解决 php 连接池的问题,提高还需要连接池.
max_connections = 10000
# 每个客户端连接最大的错误允许数量,如果达到了此限制.
# 这个客户端将会被 MySQL 服务阻止直到执行了"FLUSH HOSTS" 或者服务重启
# 非法的密码以及其他在链接时的错误会增加此值.
# 查看 "Aborted_connects" 状态来获取全局计数器. max_connect_errors= 10
# 所有线程所打开表的数量.
# 增加此值就增加了 mysqld 所需要的文件描述符的数量
# 这样你需要确认在[mysqld_safe]中 "open-files-limit" 变量设置打开文件数量允许至少
4096
# 根据以下命今进行实际需要设置.
# mysq>show variables like ‘table_cache‘;
# mysq>show status lie ‘open_tables‘;
table_cache = 2048
# 允许外部文件级别的锁. 打开文件锁会对性能造成负面影响
# 所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他约 束!)
# 或者你在文件层面上使用了其他一些软件依赖来锁定 MyISAM 表
#external-locking
# 服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的 BLOB
字段一起工作时相当必要)
# 每个连接独立的大小.大小动态增加
# 这个是根据 net_buffer 相对应,是 net buffer的最大值。 default 是 16M
max_allowed_packet = 16M
# 在一个事务中 binlog 为了记录 SQL 状态所持有的 cache 大小
# 如果你经常使用大的,多声明的事务,你可以增加此值来获取更大的性能.
# 所有从事务来的状态都将被缓冲在 binlog 缓冲中然后在提交后一次性写入到 binlog 中
# 如果事务比此值大, 会使用磁盘上的临时文件来替代.
# 此缓冲在每个连接的事务第一次更新状态时被创建
binlog_cache_size= 1M
# 独立的内存表所允许的最大容量.
# 此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源. max_heap_table_size = 64M
# 排序缓冲被用来处理类似ORDER BY 以及 GROUP BY 队列所引起的排序
# 如果排序后的数据无法放入排序缓冲,
# 一个用来替代的基于磁盘的合并分类会被使用
# 查看 "Sort_merge_passes" 状态变量.
# 在排序发生时由每个线程分配
sort_buffer_size = 8M
http://user.qzone.qq.com/2858415798/blog/1451869352
QQ:2858415798