mysql里的ini文件如何设置?需要编辑吗?

mysql里的ini文件如何设置?需要编辑吗?,第1张

这个mysql的运行配置参数文件。

如果你不是很了解mysql的话,先用默认的mysql.ini就可以,乱设置的话可能得不偿失。

如果你想深入了解学习mysql的话,可以先找相关的资料,查查各个参数的含义,有助于你优化数据库性能。

例如:

[mysqld]

port=3306 # mysql服务端默认监听(listen on)的TCP/IP端口

basedir="C:/Program Files/MySQL/MySQL Server 5.5/" # 基准路径,其他路径都相对于这个路径

datadir="C:/Program Files/MySQL/MySQL Server 5.5/Data" # mysql数据库文件所在目录

character-set-server=latin1 # 服务端使用的字符集默认为8比特编码的latin1字符集

default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" # SQL模式为strict模式

max_connections=100 # mysql服务器支持的最大并发连接数(用户数)。但总会预留其中的一个连接给管理员使用超级权限登录,即使连接数目达到最大限制。如果设置得过小而用户比较多,会经常出现“Too many connections”错误。

query_cache_size=0 # 查询缓存大小,用于缓存SELECT查询结果。如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size大于0,可以极大改善查询效率。而如果表数据频繁变化,就不要使用这个,会适得其反

table_cache=256 # 这个参数在5.1.3之后的版本中叫做table_open_cache,用于设置table高速缓存的数量。由于每个客户端连接都会至少访问一个表,因此此参数的值与 max_connections有关。当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。在执行缓存 *** 作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。

tmp_table_size=34M # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)。

thread_cache_size=8 # 缓存的最大线程数。当客户端连接断开时,如果客户端总连接数小于该值,则处理客户端任务的线程放回缓存。在高并发情况下,如果该值设置得太小,就会有很多线程频繁创建,线程创建的开销会变大,查询效率也会下降。一般来说如果在应用端有良好的多线程处理,这个参数对性能不会有太大的提高。

# MyISAM相关参数

myisam_max_sort_file_size=100G # mysql重建索引时允许使用的临时文件最大大小

myisam_sort_buffer_size=68M

key_buffer_size=54M # Key Buffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读)

read_buffer_size=64K # 用于对MyISAM表全表扫描时使用的缓冲区大小。针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时,MySql会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。

read_rnd_buffer_size=256K

sort_buffer_size=256K # connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size。

# InnoDB相关参数

innodb_additional_mem_pool_size=3M # InnoDB用于存储元数据信息的内存池大小,一般不需修改

innodb_flush_log_at_trx_commit =1 # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒。

innodb_log_buffer_size=2M # InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,即使是长事务。

innodb_buffer_pool_size=105M # InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。

innodb_log_file_size=53M # 每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100%

innodb_thread_concurrency=9 # InnoDB内核最大并发线程数

步骤:

1、查找my.ini位置,可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径。

"D:\MySQL\MySQL Server 5.5\bin\mysqld" --defaults-file="D:\MySQL Data\my.ini" MySQL55

2、编辑my.ini中对应datadir

改前:datadir="D:\MySQL Data\data\"

改后:datadir="D:\MySQL Data\MySQL Server 5.5\data\"

3、重整mysql对应数据文件目录(若不做,则mysql无法正常启动)

4、查找注册表,修改mysql启动项所关联的defaults-file路径:

KEY_LOCAL_MACHINE/SYSTEM/Services/MySQL55

修改完后,刷新windows服务,再次查看mysql启动项属性->可执行文件路径,结果如下:

"D:\MySQL\MySQL Server 5.5\bin\mysqld" --defaults-file="D:\MySQL Data\MySQL Server 5.5\my.ini" MySQL

确保将my.ini移植到正确的目录下。

5、重启mysql,配置成功。

1、在我们的电脑上面找到mysql的安装路径,点击进去。

2、进去之后可以看到my.ini在mysql安装路径的根目录,这是其中一种情况。

3、另外一种情况是我们在mysql安装目录找不到,看到了my-default.ini文件,这时my.ini在“C:\ProgramData\MySQL\MySQL Server 5.6”目录下面,我们首先需要找到ProgramData文件夹,这是一个隐藏文件,需要隐藏文件可见才行,或者可以直接检索。

4、我们可以看到在“C:\ProgramData\MySQL\MySQL Server 5.6”目录下面找到了my.ini文件。

5、我们右键my.ini文件,选择打开方式,可以通过记事本和其他文本编辑器打开。

6、我们可以看到my.ini的文件打开了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6167691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存