[sql]mysql参数,配置手册

my-innodb-heavy-4G.cnf配置文件注解

[client]                   #客户端
port  = 3306               #mysql客户端连接时的默认端口号
socket  = /application/mysql-5.5.32/tmp/mysql.sock
[mysqld]
port  = 3306               #mysql服务器监听的默认端口
socket  = /application/mysql-5.5.32/tmp/mysql.sock 
back_log = 50              #是指保持在操作系统监听队列的连接数量,即在MySQL连接管理器线程处理他们之前的连接数量
max_connections = 100      #MySQL允许的并发会话的最大数量
max_connect_errors = 10    #每个主机允许的最大错误数量
table_open_cache = 2048    #所有线程打开表的数字,文件描述符的大小
max_allowed_packet = 16M   #服务器一次能处理的最大的查询包的值,也是服务器程序能够处理的最大查询
binlog_cache_size = 1M     #在一个事务中,二进制日志能够处理SQL语句的缓存的最大数字,如果你经常使用复杂语句的事务,你可以增大这个值获得更好的性能,事务中所有的语句都会被缓存到binlog中并且一次性的提交后立刻写入二进制日志中。如果处理的事务大于这个值,磁盘上的临时文件被代替使用,这个缓冲会在在事务中第一次有更改状态时,被分配的每个链接上。
max_heap_table_size = 64M  #独立的内存表所允许的最大容量
read_buffer_size = 2M      #MySql读入缓冲区大小。
read_rnd_buffer_size = 16M #是MySql的随机读缓冲区大小。
sort_buffer_size = 8M      # 排序缓冲被用来处理类似ORDER BY以及GROUP BY队列所引起的排序
join_buffer_size = 8M      #此缓冲被使用来优化全联合(full JOINs 不带索引的联合).
thread_cache_size = 8      #我们在cache中保留多少线程用于重用
thread_concurrency = 8     #此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.
query_cache_size = 64M     #查询缓冲的大小。查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果.
query_cache_limit = 2M     #只有小于此设定值的结果才会被缓冲
ft_min_word_len = 4        # 被全文检索索引的最小的字长.
default-storage-engine = MYISAM        #当创建新表时作为默认使用的表类型
thread_stack = 192K                    #线程使用的堆大小. 此容量的内存在每次连接时被预留
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M                   #内部(内存中)临时表的最大大小
log-bin=mysql-bin                      #打开二进制日志功能.
binlog_format=mixed                    #设定记录二进制日志的格式,有三种格式,基于语句 statement、 基于行 row、 混合方式 mixed
slow_query_log                         #记录慢查询,
long_query_time = 2                    #所有的超过这个参数时间的请求将被作为慢查询
server-id = 1                          #唯一的服务标识号,它的取值在1到 2^32-1之间,这个值在主服务器和从服务器是被要求设置的。他的默认参数是1,如果是主机不需要设置,但是如果忽略此选项,MySQL不会作为master生效. 
key_buffer_size = 32M                  #关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块.
bulk_insert_buffer_size = 64M          #MyISAM 使用特殊的类似树的cache来使得突发插入,(这些插入是,INSERT … SELECT, INSERT … VALUES (…), (…), …, 以及 LOAD DATA INFILE) 更快. 此变量限制每个进程中缓冲树的字节数. 
myisam_sort_buffer_size = 128M         #当需要对于执行REPAIR, OPTIMIZE, ALTER 语句重建索引时,MySQL会分配这个缓存,以及LOAD DATA INFILE会加载到一个新表,它会根据最大的配置认真的分配的每个线程。 
myisam_max_sort_file_size = 10G        #当重新建索引(REPAIR,ALTER,TABLE,或者LOAD,DATA,TNFILE)时,MySQL被允许使用临时文件的最大值。
myisam_repair_threads = 1              #如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.
myisam_recover                         #自动检查和修复没有适当关闭的 MyISAM 表.
innodb_additional_mem_pool_size = 16M  #附加的内存池被InnoDB用来保存 metadata 信息
innodb_buffer_pool_size = 2G           #InnoDB使用一个缓冲池来保存索引和原始数据, 
innodb_data_file_path = ibdata1:10M:autoextend  #InnoDB 将数据保存在一个或者多个数据文件中成为表空间.
innodb_write_io_threads = 8        
innodb_read_io_threads = 8             #用来同步IO操作的IO线程的数量.
innodb_thread_concurrency = 16         #使用InnoDB引擎,内核被允许的线程数,这个最佳值取决于应用程序,硬件还有操作系统的调度程序。太高的值肯定会导致线程抖动。
innodb_flush_log_at_trx_commit = 1     #如果设置为1 ,InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上,
innodb_log_buffer_size = 8M            #用来缓冲日志数据的缓冲区的大小.
innodb_log_file_size = 256M            #在日志组中每个日志文件的大小,
innodb_log_files_in_group = 3          #在日志组中文件的总量,通常2-3就足够了
innodb_max_dirty_pages_pct = 90        #在InnoDB缓冲池中最大允许的脏页面的比例.
innodb_lock_wait_timeout = 120         #在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久.
[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 = 8192               #每个程序允许打开文件的数量

常见mysql错误提示码详细解析

代码解释
1005创建表失败
1006创建数据库失败
1007数据库已存在,创建数据库失败
1008数据库不存在,删除数据库失败
1009不能删除数据库文件导致删除数据库失败
1010不能删除数据目录导致删除数据库失败
1011删除数据库文件失败
1012不能读取系统表中的记录
1020记录已被其他用户修改
1021硬盘剩余空间不足,请加大硬盘可用空间
1022关键字重复,更改记录失败
1023关闭时发生错误
1024读文件错误
1025更改名字时发生错误
1026写文件错误
1032记录不存在
1036数据表是只读的,不能对它进行修改
1037系统内存不足,请重启数据库或重启服务器
1038用于排序的内存不足,请增大排序缓冲区
1040已到达数据库的最大连接数,请加大数据库可用连接数
1041系统内存不足
1042无效的主机名
1043无效连接
1044当前用户没有访问数据库的权限
1045不能连接数据库,用户名或密码错误
1048字段不能为空
1049数据库不存在
1050数据表已存在
1051数据表不存在
1054字段不存在
1065无效的SQL语句,SQL语句为空
1081不能建立Socket连接
1114数据表已满,不能容纳任何记录
1116打开的数据表太多
1129数据库出现异常,请重启数据库
1130连接数据库失败,没有连接数据库的权限
1133数据库用户不存在
1141当前用户无权访问数据库
1142当前用户无权访问数据表
1143当前用户无权访问数据表中的字段
1146数据表不存在
1147未定义用户对数据表的访问权限
1149SQL语句语法错误
1158网络错误,出现读错误,请检查网络连接状况
1159网络错误,读超时,请检查网络连接状况
1160网络错误,出现写错误,请检查网络连接状况
1161网络错误,写超时,请检查网络连接状况
1062字段值重复,入库失败
1169字段值重复,更新记录失败
1177打开数据表失败
1180提交事务失败
1181回滚事务失败
1203当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205加锁超时
1211当前用户没有创建用户的权限
1216外键约束检查失败,更新子表记录失败
1217外键约束检查失败,删除或修改主表记录失败
1226当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227权限不足,您无权进行此操作
1235MySQL版本过低,不具有本功能