转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
InnoDB 中文参考手册 --- 2 InnoDB 启动选项         ★★★★

InnoDB 中文参考手册 --- 2 InnoDB 启动选项

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1437 更新时间:2009/4/22 23:09:06
InnoDB 中文参考手册 --- 犬犬(心帆)翻译

2 InnoDB 启动选项

为了在 MySQL-Max-3.23 中使用 InnoDB 表,你必须在配置文件‘my.cnf’‘my.ini’(WINDOWS系统)中的 [mysqld] 区中详细指定配置参数。

作为最小设置,在 3.23 中你必须在 innodb_data_file_path 上指定数据文件名能及大小。如果在‘my.cnf’中没有指定innodb_data_home_dir,系统将在 MySQL 的 datadir 目录下创建数据文件。如果将 innodb_data_home_dir 设为一个空串,那可以在 innodb_data_file_path 中给定一个绝对路径。在 MySQL-4.0 中可以不设定 innodb_data_file_path :MySQL-4.0 将默认地在 datadir 目录下建立一个 10 MB 大小自扩充(auto-extending)的文件‘ibdata1’(在MySQL-4.0.0 与 4.0.1 中数据文件的大小为 64 MB 并且是非自扩充的(not auto-extending))。

为了得到更好的性能你必须所示的例子明确地设定 InnoDB 启动参数。

从 3.23.50 版和 4.0.2 版开始,InnoDB 允许在 innodb_data_file_path 中设置的最一个数据文件描述为 auto-extendinginnodb_data_file_path 语法如下所示:

pathtodatafile:sizespecification;pathtodatafile:sizespec;...
 ...;pathtodatafile:sizespec[:autoextend[:max:sizespecification]]
 
如果用 autoextend 选项描述最后一个数据文件,当 InnoDB 用尽所有表自由空间后将会自动扩充最后一个数据文件,每次增量为 8 MB。示例:
innodb_data_home_dir =
 innodb_data_file_path = /ibdata/ibdata1:100M:autoextend
 
指定 InnoDB 只建立一个最初大小为 100 MB 并且当表空间被用尽时以 8MB 每块增加的数据文件。如果硬盘空间不足,可以再添加一个数据文件并将其放在其它的硬盘中。 举例来说:先检查硬盘空间的大小,设定 ibdata1 文件使它接近于硬盘空余空间大小并为 1024 * 1024 bytes (= 1 MB)的倍数, 将 ibdata1 明确地指定在 innodb_data_file_path 中。在此之后可以添加另一个数据文件:
innodb_data_home_dir =
 innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend
 
注意:设定文件大小时一定要注意你的OS是否有最大文件尺寸为2GB的限制!InnoDB是不会注意你的OS文件尺寸限制的, 在一些文件系统中你可能要设定最大容量限制:
innodb_data_home_dir =
 innodb_data_file_path = /ibdata/ibdata1:100M:autoextend:max:2000M
 

 

一个简单的 my.cnf 例子。 假设你的计算机有 128 MB RAM 和一个硬盘。下面的例子是为了使用 InnoDB 而在 my.cnfmy.ini 文件中可能所作的一些配置。我们假设你运行的是 MySQL-Max-3.23.50 及以上版本,或 MySQL-4.0.2 及以上版本。

这个示例适合大部分不需要将 InnoDB 数据文件和日志文件放在几个盘上的 Unix 和 Windows 用户。这个例子在 MySQL 的datadir 目录(典型的为 /mysql/data)中创建一个自扩充(auto-extending)的数据文件 ibdata1 和两个 InnoDB 运行日志文件ib_logfile0 ib_logfile1 以及 ib_arch_log_0000000000 档案文件。

[mysqld]
 #在这里加入其它 的 MySQL 服务器配置
 #...
 #                                        数据文件必须
 #                                        能够容下数据与索引
 #                                        确定有足够的
 #                                        磁盘空间
 innodb_data_file_path = ibdata1:10M:autoextend
 #                                        设置缓冲池的大小为
 #                                        你的主内存大小的
 #                                        50 - 80 %
 set-variable = innodb_buffer_pool_size=70M
 set-variable = innodb_additional_mem_pool_size=10M
 #                                        设置日志文件的大小约为
 #                                        缓冲池(buffer pool)
 #                                        大小的 25 %
 set-variable = innodb_log_file_size=20M
 set-variable = innodb_log_buffer_size=8M
 #                                        如果丢失最近几个事务影响
 #                                        不大的话可以设置
 #                                        .._flush_log_at_trx_commit = 0
 innodb_flush_log_at_trx_commit=1
 

InnoDB 不会自己建立目录,必须自己使用操作系统命令建立相应的目录。检查你的 MySQL 服务程序在 datadir 目录里 有足够的权限建立文件。

注意:在某些文件系统中 数据文件大小必须小于2G! 所有运行日志文件的大小总和必须小于 2G 或 4G,这依赖于具体的 MySQL 系统版本。 数据文件的总和必须大于等于 10 MB.

当第一次建立 InnoDB 数据库时,建议最好以命令行方式启动 MySQL 服务。这样 InnoDB 数据库建立时的提示信息将在屏幕上显示,从而可以看到建立过程。 下面第 3 节所示就是 InnoDB 数据库建立时的屏幕显示。例如,在 Windows 下使用下列指令启动 mysqld-max.exe

your-path-to-mysqld>mysqld-max --console
 

 

在 Windows 系统下 my.cnfmy.ini 放在哪里?规则如下 :

  • 只能存在一个 my.cnf my.ini 文件
  • my.cnf 文件必须放在 C: 的根目录下
  • my.ini 文件必须放在 WINDIR 目录下,例:C:\WINDOWSC:\WINNT。可以使用 MS-DOS 的 SET 命令查看 WINDIR 目录值
  • 如果你的 PC 使用启动引导程序引导系统而 C: 不是启动磁盘,那只能唯一地使用 my.ini 作为设置文件

 

Unix 下在哪里指定配置文件?在 Unix 下 mysqld 按下列顺序搜索配置文件:

  • /etc/my.cnf 全局选项
  • COMPILATION_DATADIR/my.cnf 服务器范围的选项
  • defaults-extra-file 采用 --defaults-extra-file=.... 设置的默认文件
  • ~/.my.cnf 用户指定文件
COMPILATION_DATADIR 是 MySQL 的数据文件目录,它是在 mysqld 被编译时以 ./configure 设置指定 (典型的是 /usr/local/mysql/data 二进制安装或 /usr/local/var 以源安装)。

 

如果不有确定 mysqld 从哪里读取 my.cnfmy.ini,可以在第一命令行上详细指定它的目录:mysqld --defaults-file=your_path_to_my_cnf

InnoDB 的数据文件目录是对 innodb_data_home_dirinnodb_data_file_path 的数据文件名或目录联合 ,如果需要将在它们之间增加一个“/”或“\”。如果关键字 innodb_data_home_dir 没有在 my.cnf 中明确指定,它的默认值为“.”,即目录“./”,这意味着 MySQL 的 datadir of MySQL.

一个高级的 my.cnf 示例。假设你有一台 2 GB RAM 和3个 60 GB 硬盘(路径分别为 "/", "/dr2"“/dr3”)装有 Linux。下面的例子是为了使用 InnoDB 而在 my.cnf 文件中可能所作的一些配置。

注意:InnoDB 不会自己创建文件目录:你必须自己创建它们。使用 Unix 或 MS-DOS mkdir 命令建立相应的数据与日志文件目录。

[mysqld]
 #在这里加入其它 的 MySQL 服务器配置
 #...
 #                                        如果不使用InnoDB表将一列一行注释去除
 #                                        skip-innodb
 #
 #                                        数据文件必须
 #                                        能够容下数据与索引
 #                                        确定有足够的
 #                                        磁盘空间
 innodb_data_file_path = /ibdata/ibdata1:2000M;/dr2/ibdata/ibdata2:2000M:autoextend
 #                                        设置缓冲池的大小为
 #                                        你的主内存大小的
 #                                        50 - 80 %,但是
 #                                        在 Linux x86 总内存
 #                                        使用必须小于 2 GB
 set-variable = innodb_buffer_pool_size=1G
 set-variable = innodb_additional_mem_pool_size=20M
 innodb_log_group_home_dir = /dr3/iblogs
 #                                        .._log_arch_dir 必须和
 #                                        .._log_group_home_dir一样;
 #      从 4.0.6开始,可以省略它
 innodb_log_arch_dir = /dr3/iblogs
 set-variable = innodb_log_files_in_group=3
 #                                        设置日志文件的大小约为
 #                                        缓冲池(buffer pool)
 #                                        大小的 15 %
 set-variable = innodb_log_file_size=150M
 set-variable = innodb_log_buffer_size=8M
 #                                        如果丢失最近几个事务影响
 #                                        不大的话可以设置
 #                                        .._flush_log_at_trx_commit = 0
 innodb_flush_log_at_trx_commit=1
 set-variable = innodb_lock_wait_timeout=50
 #innodb_flush_method=fdatasync
 #set-variable = innodb_thread_concurrency=5
 

注意:我们已在不同的硬盘上放置了两个数据文件, InnoDB 将从数据文件的底部填充表空间。在某些情况下所有的数据被分配到不同的物理硬盘中会提高数据库的性能。 将日志文件与数据文

[1] [2]  下一页


[操作系统]Windows2000/XP/2003操作系统常见问题集锦下篇  [操作系统]Windows2000/XP/2003操作系统常见问题集锦上篇
[操作系统]WinXP/2000操作系统自动关机的实现  [操作系统]过河不拆桥—切勿忘记OS/2第二代操作系统之下篇
[操作系统]过河不拆桥—切勿忘记OS/2第二代操作系统之上篇  [系统软件]Visual Studio 2005 Express Editions Beta 2 下载…
[常用软件]IE 7出炉,Firefox 2当道.谁才是“王者”?  [常用软件]豪华的冲浪引擎MSN Explorer (2)
[VB.NET程序]VB.NET实现DirectDraw9 (2) 动画  [VB.NET程序]学习笔记,VB.NET使用DirectSound9 (2)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台