MySQL配置文件my.ini详解
文章目录
- my.ini 是啥玩意?
- my.ini 在哪放着呢?
- my.ini的配置内容介绍:
- 客户端的参数
- 服务器断参数:
- InnoDB存储引擎使用的参数:
- 中文翻译版 my.ini
my.ini 是啥玩意?
my.ini是MySQL数据库中使用的配置文件,修改这个文件可以达到更新配置的目的。
my.ini 在哪放着呢?
my.ini存放在MySql安装的根目录,如图所示:(我比较懒,用的WAMP,大家找自己的安装目录即可)
my.ini的配置内容介绍:
其实大体可以分为两部分:客户端的参数、服务器参数。其中服务器参数里还包括 InnoDB存储引擎参数。
客户端的参数
下面显示的是客户端的参数,[client]和[mysql]都是客户端,下面是参数简介:
port
参数表示的是MySQL数据库的端口,默认的端口是3306,如果你需要更改端口号的话,就可以通过在这里修改。default-character-set
参数是客户端默认的字符集,如果你希望它支持中文,可以设置成gbk或者utf8。这里还有一个
password
参数,在这里设置了password参数的值就可以在登陆时不用输入密码直接进入CLIENT SECTION
———————————————————————————————————
#
The following options will be read by MySQL client applications.
Note that only client applications shipped by MySQL are guaranteed
to read this section. If you want your own MySQL client program to
honor these values, you need to specify it as an option during the
MySQL client library initialization.
#
[client]port=3306
[mysql]
default-character-set=gb2312
服务器断参数:
以下是参数的介绍:
port
参数也是表示数据库的端口。basedir
参数表示MySQL的安装路径。datadir
参数表示MySQL数据文件的存储位置,也是数据库表的存放位置。default-character-set
参数表示默认的字符集,这个字符集是服务器端的。default-storage-engine
参数默认的存储引擎。
这里有两个引擎 MyISAM 和 InnoDB ,用什么看你需求,详细介绍可以参考下面这篇博文:https://yangyongli.blog.csdn.net/article/details/117213310sql-mode
参数表示SQL模式的参数,通过这个参数可以设置检验SQL语句的严格程度。max_connections
参数表示允许同时访问MySQL服务器的最大连接数,其中一个连接是保留的,留给管理员专用的。query_cache_size
参数表示查询时的缓存大小,缓存中可以存储以前通过select语句查询过的信息,再次查询时就可以直接从缓存中拿出信息。table_cache
参数表示所有进程打开表的总数。tmp_table_size
参数表示内存中临时表的总数。thread_cache_size
参数表示保留客户端线程的缓存。myisam_max_sort_file_size
参数表示MySQL重建索引时所允许的最大临时文件的大小。myisam_sort_buffer_size
参数表示重建索引时的缓存大小。key_buffer_size
参数表示关键词的缓存大小。read_buffer_size
参数表示MyISAM表全表扫描的缓存大小。read_rnd_buffer_size
参数表示将排序好的数据存入该缓存中。sort_buffer_size
参数表示用于排序的缓存大小SERVER SECTION
———————————————————————————————————
#
The following options will be read by the MySQL Server. Make sure that
you have installed the server correctly (see above) so it reads this
file.
#
[mysqld]The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="E:/Java/Mysql/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=gb2312
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=100
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=0
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=256
# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=35M
# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before. This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache_size=8
#*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=69M
# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=55M
# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K
# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
sort_buffer_size=256K
InnoDB存储引擎使用的参数:
以下是参数的简介:
innodb_additional_mem_pool_size
参数表示附加的内存池,用来存储InnoDB表的内容。innodb_flush_log_at_trx_commit
参数是设置提交日志的时机,若设置为1,InnoDB会在每次提交后将事务日志写到磁盘上。innodb_log_buffer_size
参数表示用来存储日志数据的缓存区的大小。innodb_buffer_pool_size
参数表示缓存的大小,InnoDB使用一个缓冲池类保存索引和原始数据。innodb_log_file_size
参数表示日志文件的大小。innodb_thread_concurrency
参数表示在InnoDB存储引擎允许的线程最大数。INNODB Specific options
# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
#skip-innodb
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=3M
# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1
# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=2M
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=107M
# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=54M
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=18
中文翻译版 my.ini
[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
port = 3306
socket = /tmp/mysql.sock
# 设置mysql的安装目录
basedir=F:\\Hzq Soft\\MySql Server 51GA
# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx-data
datadir=F:\\Hzq Soft\\MySql Server 51GA\\data
#innodb_log_arch_dir 默认datadir
#innodb_log_group_home_dir 默认datadir
# 设置mysql服务器的字符集,默认编码
default-character-set=utf8
#连接数的操作系统监听队列数量,如果经常出现“拒绝连接”错误可适当增加此值
back_log = 50
#不使用接听TCP / IP端口方法,mysqld通过命名管道连接
#skip-networking
# 最大连接数量
max_connections = 90
#打开表的线程数量限定,最大4096,除非用mysqld_safe打开限制
table_open_cache = 2048
#MySql 服务接收针对每个进程最大查询包大小
max_allowed_packet = 16M
#作用于SQL查询单笔处理使用的内存缓存,如果一笔操作的二进制数据超过了限定大小,将会在磁盘上开辟空间处理,一般设为 1-2M即可,默认1M
binlog_cache_size = 2M
#单个内存表的最大值限定
max_heap_table_size = 64M
#为每个线程分配的排序缓冲大小
sort_buffer_size = 8M
#join 连表操作的缓冲大小,根据实际业务来设置,默认8M
join_buffer_size = 32M
#操作多少个离开连接的线程的缓存
thread_cache_size = 8
#并发线程数量,默认为8,可适当增加到2倍以内。如果有多个CPU可以乘 上CPU的数量。双核CPU可以乘 上当前最核数再乘 上70%-85%
thread_concurrency = 16
#专用于具体SQL的缓存,如果提交的查询与几次中的某查询相同,并且在query缓存中存在,则直接返回缓存中的结果。
query_cache_size = 64M
#对应上一条设置,当查询的结果超过下面设置的大小时,将不会趣入到上面设置的缓存区中,避免了一个大的结果占据大量缓存。
query_cache_limit = 2M
#设置加全文检索中的最小单词长度。
#ft_min_word_len = 4
#CREATE TABLE 语句的默认表类型,如果不自己指定类型,则使用下行的类型
default-storage-engine = InnoDB
#线程堆栈大小,mysql说它自己用的堆栈大小不超过64K。这个值可适当设高一点(在RCA的项目中都是共用同一个数据库连接的),默认192K
thread_stack = 800K
#设置事务处理的级别,默认 REPEATABLE-READ,一般用它就即可,以下二行按顺序对应,
#可读写未提交的数据,创建未提交的数据副本读写,未提交之前可读不可写,只允许串行序列招行事务。
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
transaction_isolation = REPEATABLE-READ
#单一内存临时表在内存中的大小,超过此值自动转换到磁盘操作
tmp_table_size = 64M
#启动二进制日志功能,可通过它实现时间点恢复最新的备份
#log-bin=mysql-bin
#二进制日志格式,对就上一条,-建议混合格式
#binlog_format=mixed
#转换查询为缓慢查询
slow_query_log
#对应上一条,如果一个查询超过了下条设定的时间则执行上一条。
long_query_time = 2
#自定义主机ID识别符,用于主从或多服务器之间识别,为 一个 int 类型
server-id = 1
#一般用来缓存MyISAM表的主键,也用于临时的磁盘表缓存主键,上面多次出现临时磁盘表,所以就算不用MyISAM也最好为其设置一个不小的值,默认32M
key_buffer_size = 56M
#全表扫描MyISAM表时的缓存,每个线程拥有下行的大小。
read_buffer_size = 2M
#排序操作时与磁盘之间的缓存,分到每个线程,默认16M
read_rnd_buffer_size = 16M
#MyISAM使用特殊树形进行批量插入时的缓存,如insert ... values(..)(..)(..)
bulk_insert_buffer_size = 64M
#MyISAM索引文件的最大限定,
myisam_max_sort_file_size = 12G
#如果一个myisam表有一个以上的索引, MyISAM可以使用一个以上线程来排序并行它们。较耗硬件资源,如果你的环境不错,可以增加此值。
myisam_repair_threads = 2
#自动检查和修复无法正确关闭MyISAM表。
myisam_recover
# *** INNODB Specific options ***
#开启下条将会禁用 INNODB
#skip-innodb
#一般不用设置或者说设了也没多大用,InnoDB会自己与操作系统交互管理其附加内存池所使用InnoDB的存储数据的大小
innodb_additional_mem_pool_size = 16M
#innodb整体缓冲池大小,不宜过大,设为本地内存的 50%-75% 比较合适,在本机开发过程中可以设得较小一点如 64M,256M
innodb_buffer_pool_size = 256M
#InnoDB的数据存储在一个或多个数据文件组成的表空间
innodb_data_file_path = ibdata1:10M:autoextend
#用于异步IO操作的线程数量,默认为 4 ,可适当提高
innodb_file_io_threads = 8
#线程数内允许的InnoDB内核,不宜太高
innodb_thread_concurrency = 14
#InnoDB的事务日志快存行为,默认为 1,为0可减轻磁盘I/0操作,还有以为2
innodb_flush_log_at_trx_commit = 1
#InnoDB的用于的缓冲日志数据的大小
innodb_log_buffer_size = 16M
#日志文件,可设置为25%-90%的总体缓存大小,默认 256M. 修改此项要先删除datadir\ib_logfileXXX
innodb_log_file_size = 256M
#日志组数量,默认为3
innodb_log_files_in_group = 3
#InnoDB的日志文件位置。默认是MySQL的datadir
#innodb_log_group_home_dir
#InnoDB最大允许的脏页缓冲池的百分比,默认90
innodb_max_dirty_pages_pct = 90
#事务死锁超时设定
innodb_lock_wait_timeout = 120
[client]
port = 3306
socket = /tmp/mysql.sock
# 设置mysql客户端的字符集
default-character-set=utf8
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Only allow UPDATEs and DELETEs that use keys.
#safe-updates
[WinMySQLAdmin]
# 指定mysql服务启动启动的文件
Server=F:\\myweb\\MySql Server\\bin\\mysqld.exe
还没有评论,来说两句吧...