linux./etc/fstab文件详解
[ 2008/08/26 10:37 | by selboo ]
通常情况下,一个Linux系统将拥有很多的文件系统,然而,仅仅通过一个或非常少的文件系统来配置Linux系统也是可能的,你希望创建多个文件系统 的一个原因就是通过使用/etc/fstab文件中指定的mount选项来控制对它们的访问.
/etc/fstab文件的内容主要包括六项:
/dev/hda1 / ext3 defaults 1 1
/dev/hda5 /usr ext3 defaults 1 2
/dev/hda1 /home ext3 defaults 1 2
/dev/hda6 /var ext3 defaults 1 1
/dev/hda7 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext3 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
第一列:设备名或者设备卷标名,(/dev/sda10 或者 LABEL=/)
第二列:设备挂载目录 (例如上面的“/”或者“/mnt/D/”)
第三列:设备文件系统 (例如上面的“ext3”或者“vfat”)
第四列:挂载参数 (看帮助man mount)
对于已经挂载好的设备,例如上面的/dev/sda2,现在要改变挂载参数,这时可以不用卸载该设备,而可以使用下面的命令(没有挂载的设备,remount 这个参数无效)#mount /mnt/cdrom/ -o remount,ro (改defaults为ro)为了安全起见,可以指明其他挂载参数,例如:
default 设置该安装选项为rw,suid(允许SUID和SGID执行),dev(允许字符和块专用设备),exec(允许二进制文件的执行),auto(允许mount -a),nouser(只有根用户能配置该文件系统,不允许普通用户挂载)和async(异步I/O)
nodev 不解释或允许在该文件系统上创建字符或块专用文件(设备文件),(不允许挂载设备文件)
noexec 在该文件系统上不允许二进制文件或脚本的执行,(不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,连mount 命令都无法使用了,这时只有重新做系统了!
ro 设置此文件系统为只读
user 允许除根用户以外的用户配置该文件系统.除非被明令撤销否则该选项会自动设置noexec,nosuid和nodev选项
nosuid,nosgid 不允许SUID或SGID对该文件系统产生作用(不允许有suid和sgid属性)
noatime 取缔在此文件系统内所有文件和目录上的访问时间更新,该选项在2.2.x版及其之后的内核中可以使用
第五列:指明是否要备份.(0为不备份,1为要备份,一般根分区要备份)
第六列:指明自检顺序. (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)
在安装之前,请仔细考虑你的用户需要的访问类型,这样可以更好的对创建的系统提出要求.对于本地文件系统,考试下列这些选取mount选项的指导方针:
(1)用户主目录不应当成为SUID脚本和程序的发源地,而且也不应该拥有字符和块专用文件.
(2)任何文件系统如果拥有可被除根用户以外的人定入的目录,在最低程度上都应该使用nosuid选项./var文件系统就是这样一个文件系统,并且该文件系统对于你的系统至关重要.
(3)任何不需要被写入的文件系统(特殊情况除外)应当被安装设置为只读文件.
我们应对/var文件系统应用第二条指导原则,而对/home文件系统应用第一条指导原则.为了方便用户,我们还希望将user选项增加到/mnt/cdrom上,这样便可以允许非根用户在没有根用户干预的情况下安装CD-ROM.与user选项相联系的那些附加限制选项如nosuid,noexec和nodev应该为此提供足够的安全保障.
假设在/usr文件系统中拥有一个/usr/local/bin子目录,该子目录包含了那些被很多用户使用的可执行程序,如果这些可执行文件不会经常改变,你或许希望创建一个单独的文件系统并用ro选项对/usr/local/bi目录进行配置.可惜的是,如果确实这样去做了,那么每当需要修改/usr/local/bin或/usr/local/lib目录中的文件时,都要重新配置它的rw选项(最好是以单用户模式).在不出意外 的情况下,增强系统和网络的安全性.将会影响到性能或用户的方便性.
一个更安全的/etc/fstab表
/dev/hda1 / ext3 defaults 1 1
/dev/hdb4 sr/local/bin ext3 ro,nosuid 1 2
/dev/hdb9 sr/local/lib ext3 ro,nosuid 1 2
/dev/hda5 /usr ext3 defaults 1 2
/dev/hdb1 /home ext3 noexec,nodev,nosuid 1 2
/dev/hda6 /var ext3 nosuid 1 1
/dev/hda7 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext3 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user 0 0
none /proc proc defaults 0 0
1,加或不加auto,开机时会自动挂载;加noauto时不自动挂载,当执行mount -a的时候也不能挂载,只有通过手动挂载.
2,user 允许除根用户以外的用户配置该文件系统.
3,noexec 在该文件系统上不允许二进制文件或脚本的执行
Linux系统下MBR分区表的备份与恢复
[ 2008/08/26 10:33 | by selboo ]
备份MBR分区
1.使用fdisk -l 确定MBR位置
2.备份MBR
dd if=/dev/sda1 of=/root/mbr bs=512 count=1
3.恢复MBR
dd if=/root/mbr of=/dev/sda1 bs=512 count=1
4.恢复分区表
dd if=/root/mbr of=/dev/sda1 bs=512 skip=446 count=66
注:mbr大小512 所以bs=512 count=1
bs=512 skip=446 count=66 用来确定分区表在备份文件中的位置
一.填空题:
1. 在Linux系统中,以 文件 方式访问设备 .
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.
3. Linux文件系统中每个文件用 i节点 来标识.
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块.
5. 链接分为: 硬链接 和 符号链接 .
6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息.
7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 .
8. 前台起动的进程使用 Ctrl+c 终止.
9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置.
10. 网络管理的重要任务是: 控制 和 监控 .
11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 .
13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限.
14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新.
15. 系统交换分区是作为系统 虚拟存储器 的一块区域.
16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统.
17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作.
18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息.
19. 唯一标识每一个用户的是用户 ID 和用户名.
20. RIP 协议是最为普遍的一种内部协议,一般称为动态路由信息协议.
21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 .
22. DHCP可以实现动态 IP 地址分配.
23. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源.
24. 网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心.
25. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级 .
26. Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 .
27. vi编辑器具有两种工作模式: 命令模式 和 输入模式 .
28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限.
29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) .
30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换.
31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端 为用户提供浏览 web服务 的就是apache应用程序.
32. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 .其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份.
33. CD-ROM标准的文件系统类型是 iso9660 .
34. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo .
35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b .
36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat .
37. 设定限制用户使用磁盘空间的命令是 quota .
38. 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc .
39. 硬连接只能建立对 文件 链接.符号链接可以跨不同文件系统创建.
40. 套接字文件的属性位是 s .
41. 结束后台进程的命令是 kill .
42. 进程的运行有两种方式,即 独立运行和使用父进程运行 .
43. Links分为 硬链接和符号链接 .
44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux .
45. 管道文件的属性位是 p .
46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 .
47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename .
48. 进行远程登录的命令是 telnet .
49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10 .
50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件.
51. Apache服务器进程配置文件是 httpd.conf .
52. 在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip .
53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt .
54. 可以在标准输出上显示整年日历的命令及参数是 cal -y .
55. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格 .
56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5 .
57. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 .
58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 .
59. 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup .
60. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb .
61. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 .
62. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件.
63. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件.
64. 在vi编辑环境下,使用 Esc键 进行模式转换.
65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成.
66. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang .
67. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 .
68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件.
69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at 、 batch 和 crontab .
70. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录.
71. Sendmail邮件系统使用的两个主要协议是: SMTP 和 POP ,前者用来发送邮件,后者用来接收邮件.
72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 .
73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid .
74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r或-R .
75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名.
76. 路由选择协议(RIP)的跳数表示到达目的地之前必须通过的 网关 数,RIP接受的最长距离是 15跳 .
77. ping命令用于测试网络的连通性,ping命令通过 ICMP 协议(internet控制信息协议)来实现.
78. nfs 协议用于实现Unix(/linux)主机之间的文件系统共享.
79. 在Linux操作系统中,设备都是通过特殊的 文件 来访问.
80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言. bash是Linux的缺省shell.
81. 用 >;>; 符号将输出重定向内容附加在原文的后面.
82. 增加一个用户的命令是:adduser 或useradd .
83. 进行字符串查找,使用grep命令.
84. 使用 * 每次匹配若干个字符.
85. /sbin 目录用来存放系统管理员使用的管理程序.
修复Linux引导程序
[ 2008/08/21 10:44 | by selboo ]
我在Windows下使用使用硬盘ISO装Linux(Fedora),用Grub for DOS来进行引导安装(参见:http://wintys.blog.51cto.com/425414/93927).装好后一切正常。有一天我的Windows系统重装了,这时也无法进入Linux了。这就需要重新引导Linux了。步骤如下:
1.
下载Grub for DOS(引导多系统):
http://sourceforge.net/project/showfiles.php?group_id=104188
下载explore2fs(从Windows提取Linux启动文件):
http://www.chrysocome.net/explore2fs
2.
安装Grub for DOS.
将Grub解压到C盘根目录.
3.
修改C:\boot.ini,最后面添加这么一行,C:\grldr="GRUB For Dos",保存后退出.
4.
使用explore2fs提取Fedora 文件,然后从文件/grub/menu.lst中找到引导信息:
title Fedora (2.6.25-14.fc9.i686)
root (hd0,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=88fae061-9e2e-4f6b-bb13-f95fae8ea928 rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
5.
修改C:\boot\grub\menu.lst,
将刚才提取的信息添加到menu.lst文件中,根据需要修改:
title Fedora9
root (hd1,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=88fae061-9e2e-4f6b-bb13-f95fae8ea928 rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
注:因为我有两块硬盘,Winodos装在第一块硬盘上,而Fedora装在第二块硬盘上,
所以root(hd0,0)修改为root(hd1,0)
Mysqld配置选项详细介绍
[ 2008/08/20 10:33 | by selboo ]
mysqld程序--目录和文件
basedir = path 使用给定目录作为根目录(安装目录).
character-sets-dir = path 给出存放着字符集的目录.
datadir = path 从给定目录读取数据库文件.
pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程.
socket = filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统; 默认设置一般是/var/lib/mysql/mysql.sock文件).在Windows环境下,如果MySQL客户与服务器是通过命名管道进行通信的,--sock选项给出的将是该命名管道的名字(默认设置是MySQL).
lower_case_table_name = 1/0 新目录和数据表的名字是否只允许使用小写字母; 这个选项在Windows环境下的默认设置是1(只允许使用小写字母).
mysqld程序--语言设置
character-sets-server = name 新数据库或数据表的默认字符集.为了与MySQL的早期版本保持兼容,这个字符集也可以用--default-character-set选项给出; 但这个选项已经显得有点过时了.
collation-server = name 新数据库或数据表的默认排序方式.
lanuage = name 用指定的语言显示出错信息.
mysqld程序--通信、网络、信息安全
enable-named-pipes 允许Windows 2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信.这个命名管道的默认名字是MySQL,但可以用--socket选项来改变.
local-infile [=0] 允许/禁止使用LOAD DATA LOCAL语句来处理本地文件.
myisam-recover [=opt1, opt2, ...] 在启动时自动修复所有受损的MyISAM数据表.这个选项的可取值有4种:DEFAULT、BACKUP、QUICK和FORCE; 它们与myisamchk程序的同名选项作用相同.
old-passwords 使用MySQL 3.23和4.0版本中的老算法来加密mysql数据库里的密码(默认使用MySQL 4.1版本开始引入的新加密算法).
port = n 为MySQL程序指定一个TCP/IP通信端口(通常是3306端口).
safe-user-create 只有在mysql.user数据库表上拥有INSERT权限的用户才能使用GRANT命令; 这是一种双保险机制(此用户还必须具备GRANT权限才能执行GRANT命令).
shared-memory 允许使用内存(shared memory)进行通信(仅适用于Windows).
shared-memory-base-name = name 给共享内存块起一个名字(默认的名字是MySQL).
skip-grant-tables 不使用mysql数据库里的信息来进行访问控制(警告:这将允许用户任何用户去修改任何数据库).
skip-host-cache 不使用高速缓存区来存放主机名和IP地址的对应关系.
skip-name-resovle 不把IP地址解析为主机名; 与访问控制(mysql.user数据表)有关的检查全部通过IP地址行进.
skip-networking 只允许通过一个套接字文件(Unix/Linux系统)或通过命名管道(Windows系统)进行本地连接,不允许ICP/IP连接; 这提高了安全性,但阻断了来自网络的外部连接和所有的Java客户程序(Java客户即使在本地连接里也使用TCP/IP).
user = name mysqld程序在启动后将在给定UNIX/Linux账户下执行; mysqld必须从root账户启动才能在启动后切换到另一个账户下执行; mysqld_safe脚本将默认使用--user=mysql选项来启动mysqld程序.
mysqld程序--内存管理、优化、查询缓存区
bulk_insert_buffer_size = n 为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M).
key_buffer_size = n 用来存放索引区块的RMA值(默认设置是8M).
join_buffer_size = n 在参加JOIN操作的数据列没有索引时为JOIN操作分配的缓存区长度(默认设置是128K).
max_heap_table_size = n HEAP数据表的最大长度(默认设置是16M); 超过这个长度的HEAP数据表将被存入一个临时文件而不是驻留在内存里.
max_connections = n MySQL服务器同时处理的数据库连接的最大数量(默认设置是100).
query_cache_limit = n 允许临时存放在查询缓存区里的查询结果的最大长度(默认设置是1M).
query_cache_size = n 查询缓存区的最大长度(默认设置是0,不开辟查询缓存区).
query_cache_type = 0/1/2 查询缓存区的工作模式:0, 禁用查询缓存区; 1,启用查询缓存区(默认设置); 2,"按需分配"模式,只响应SELECT SQL_CACHE命令.
read_buffer_size = n 为从数据表顺序读取数据的读操作保留的缓存区的长度(默认设置是128KB); 这个选项的设置值在必要时可以用SQL命令SET SESSION read_buffer_size = n命令加以改变.
read_rnd_buffer_size = n 类似于read_buffer_size选项,但针对的是按某种特定顺序(比如使用了ORDER BY子句的查询)输出的查询结果(默认设置是256K).
sore_buffer = n 为排序操作分配的缓存区的长度(默认设置是2M); 如果这个缓存区太小,则必须创建一个临时文件来进行排序.
table_cache = n 同时打开的数据表的数量(默认设置是64).
tmp_table_size = n 临时HEAP数据表的最大长度(默认设置是32M); 超过这个长度的临时数据表将被转换为MyISAM数据表并存入一个临时文件.
mysqld程序--日志
log [= file] 把所有的连接以及所有的SQL命令记入日志(通用查询日志); 如果没有给出file参数,MySQL将在数据库目录里创建一个hostname.log文件作为这种日志文件(hostname是服务器的主机名).
log-slow-queries [= file] 把执行用时超过long_query_time变量值的查询命令记入日志(慢查询日志); 如果没有给出file参数,MySQL将在数据库目录里创建一个hostname-slow.log文件作为这种日志文件(hostname是服务器主机名).
long_query_time = n 慢查询的执行用时上限(默认设置是10s).
long_queries_not_using_indexs 把慢查询以及执行时没有使用索引的查询命令全都记入日志(其余同--log-slow-queries选项).
log-bin [= filename] 把对数据进行修改的所有SQL命令(也就是INSERT、UPDATE和DELETE命令)以二进制格式记入日志(二进制变更日志,binary update log).这种日志的文件名是filename.n或默认的hostname.n,其中n是一个6位数字的整数(日志文件按顺序编号).
log-bin-index = filename 二进制日志功能的索引文件名.在默认情况下,这个索引文件与二进制日志文件的名字相同,但后缀名是.index而不是.nnnnnn.
max_binlog_size = n 二进制日志文件的最大长度(默认设置是1GB).在前一个二进制日志文件里的信息量超过这个最大长度之前,MySQL服务器会自动提供一个新的二进制日志文件接续上.
binlog-do-db = dbname 只把给定数据库里的变化情况记入二进制日志文件,其他数据库里的变化情况不记载.如果需要记载多个数据库里的变化情况,就必须在配置文件使用多个本选项来设置,每个数据库一行.
binlog-ignore-db = dbname 不把给定数据库里的变化情况记入二进制日志文件.
sync_binlog = n 每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步).n=1是最安全的做法,但效率最低.默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作.
log-update [= file] 记载出错情况的日志文件名(出错日志).这种日志功能无法禁用.如果没有给出file参数,MySQL会使用hostname.err作为种日志文件的名字.
mysqld程序--镜像(主控镜像服务器)
server-id = n 给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能.
log-bin = name 启用二进制日志功能.这种日志的文件名是filename.n或默认的hostname.n,其中的n是一个6位数字的整数(日志文件顺序编号).
binlog-do/ignore-db = dbname 只把给定数据库里的变化情况记入二进制日志文件/不把给定的数据库里的变化记入二进制日志文件.
mysqld程序--镜像(从属镜像服务器)
server-id = n 给服务器分配一个唯一的ID编号
log-slave-updates 启用从属服务器上的日志功能,使这台计算机可以用来构成一个镜像链(A->B->C).
master-host = hostname 主控服务器的主机名或IP地址.如果从属服务器上存在mater.info文件(镜像关系定义文件),它将忽略此选项.
master-user = replicusername 从属服务器用来连接主控服务器的用户名.如果从属服务器上存在mater.info文件,它将忽略此选项.
master-password = passwd 从属服务器用来连接主控服务器的密码.如果从属服务器上存在mater.info文件,它将忽略此选项.
master-port = n 从属服务器用来连接主控服务器的TCP/IP端口(默认设置是3306端口).
master-connect-retry = n 如果与主控服务器的连接没有成功,则等待n秒(s)后再进行管理方式(默认设置是60s).如果从属服务器存在mater.info文件,它将忽略此选项.
master-ssl-xxx = xxx 对主、从服务器之间的SSL通信进行配置.
read-only = 0/1 0: 允许从属服务器独立地执行SQL命令(默认设置); 1: 从属服务器只能执行来自主控服务器的SQL命令.
read-log-purge = 0/1 1: 把处理完的SQL命令立刻从中继日志文件里删除(默认设置); 0: 不把处理完的SQL命令立刻从中继日志文件里删除.
replicate-do-table = dbname.tablename 与--replicate-do-table选项的含义和用法相同,但数据库和数据库表名字里允许出现通配符"%"(例如: test%.%--对名字以"test"开头的所有数据库里的所以数据库表进行镜像处理).
replicate-do-db = name 只对这个数据库进行镜像处理.
replicate-ignore-table = dbname.tablename 不对这个数据表进行镜像处理.
replicate-wild-ignore-table = dbn.tablen 不对这些数据表进行镜像处理.
replicate-ignore-db = dbname 不对这个数据库进行镜像处理.
replicate-rewrite-db = db1name > db2name 把主控数据库上的db1name数据库镜像处理为从属服务器上的db2name数据库.
report-host = hostname 从属服务器的主机名; 这项信息只与SHOW SLAVE HOSTS命令有关--主控服务器可以用这条命令生成一份从属服务器的名单.
slave-compressed-protocol = 1 主、从服务器使用压缩格式进行通信--如果它们都支持这么做的话.
slave-skip-errors = n1, n2, ...或all 即使发生出错代码为n1、n2等的错误,镜像处理工作也继续进行(即不管发生什么错误,镜像处理工作也继续进行).如果配置得当,从属服务器不应该在执行SQL命令时发生错误(在主控服务器上执行出错的SQL命令不会被发送到从属服务器上做镜像处理); 如果不使用
slave-skip-errors选项,从属服务器上的镜像工作就可能国为发生错误而中断,中断后需要有人工参与才能继续进行.
mysqld--InnoDB--基本设置、表空间文件
skip-innodb 不加载InnoDB数据表驱动程序--如果用不着InnoDB数据表,可以用这个选项节省一些内存.
innodb-file-per-table 为每一个新数据表创建一个表空间文件而不是把数据表都集中保存在中央表空间里(后者是默认设置).该选项始见于MySQL 4.1.
innodb-open-file = n InnoDB数据表驱动程序最多可以同时打开的文件数(默认设置是300).如果使用了innodb-file-per-table选项并且需要同时打开很多数据表的话,这个数字很可能需要加大.
innodb_data_home_dir = p InnoDB主目录,所有与InnoDB数据表有关的目录或文件路径都相对于这个路径.在默认的情况下,这个主目录就是MySQL的数据目录.
innodb_data_file_path = ts 用来容纳InnoDB为数据表的表空间: 可能涉及一个以上的文件; 每一个表空间文件的最大长度都必须以字节(B)、兆字节(MB)或千兆字节(GB)为单位给出; 表空间文件的名字必须以分号隔开; 最后一个表空间文件还可以带一个autoextend属性和一个最大长度(max:n).例如,ibdata1:1G; ibdata2:1G:autoextend:max:2G的意思是: 表空间文件ibdata1的最大长度是1GB,ibdata2的最大长度也是1G,但允许它扩充到2GB.除文件名外,还可以用硬盘分区的设置名来定义表空间,此时必须给表空间的最大初始长度值加上newraw关键字做后缀,给表空间的最大扩充长度值加上raw关键字做后缀(例如/dev/hdb1:20Gnewraw或/dev/hdb1:20Graw); MySQL 4.0及更高版本的默认设置是ibdata1:10M:autoextend.
innodb_autoextend_increment = n 带有autoextend属性的表空间文件每次加大多少兆字节(默认设置是8MB).这个属性不涉及具体的数据表文件,那些文件的增大速度相对是比较小的.
innodb_lock_wait_timeout = n 如果某个事务在等待n秒(s)后还没有获得所需要的资源,就使用ROLLBACK命令放弃这个事务.这项设置对于发现和处理未能被
InnoDB数据表驱动程序识别出来的死锁条件有着重要的意义.这个选项的默认设置是50s.
innodb_fast_shutdown 0/1 是否以最快的速度关闭InnoDB,默认设置是1,意思是不把缓存在INSERT缓存区的数据写入数据表,那些数据将在MySQL服务器下次启动时再写入(这么做没有什么风险,因为INSERT缓存区是表空间的一个组成部分,数据不会丢失).把这个选项设置为0反面危险,因为在计算机关闭时,
InnoDB驱动程序很可能没有足够的时间完成它的数据同步工作,操作系统也许会在它完成数据同步工作之前强行结束InnoDB,而这会导致数据不完整.
mysqld程序--InnoDB--日志
innodb_log_group_home_dir = p 用来存放InnoDB日志文件的目录路径(如ib_logfile0、ib_logfile1等).在默认的情况下,InnoDB驱动程序将使用MySQL数据目录作为自己保存日志文件的位置.
innodb_log_files_in_group = n 使用多少个日志文件(默认设置是2).InnoDB数据表驱动程序将以轮转方式依次填写这些文件; 当所有的日志文件都写满以后,之后的日志信息将写入第一个日志文件的最大长度(默认设置是5MB).这个长度必须以MB(兆字节)或GB(千兆字节)为单位进行设置.
innodb_flush_log_at_trx_commit = 0/1/2 这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为"同步")到硬盘上.设置值0的意思是每隔一秒写一次日志并进行同步,这可以减少硬盘写操作次数,但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步,这可以防止数据丢失,但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法,即每执行完一条COMMIT命令写一次日志,每隔一秒进行一次同步.
innodb_flush_method = x InnoDB日志文件的同步办法(仅适用于UNIX/Linux系统).这个选项的可取值有两种: fdatasync,用fsync()函数进行同步; O_DSYNC,用O_SYNC()函数进行同步.
innodb_log_archive = 1 启用InnoDB驱动程序的archive(档案)日志功能,把日志信息写入ib_arch_log_n文件.启用这种日志功能在InnoDB与MySQL一起使用时没有多大意义(启用MySQL服务器的二进制日志功能就足够用了).
mysqld程序--InnoDB--缓存区的设置和优化
innodb_log_buffer_pool_size = n 为InnoDB数据表及其索引而保留的RAM内存量(默认设置是8MB).这个参数对速度有着相当大的影响,如果计算机上只运行有MySQL/InnoDB数据库服务器,就应该把全部内存的80%用于这个用途.
innodb_log_buffer_size = n 事务日志文件写操作缓存区的最大长度(默认设置是1MB).
innodb_additional_men_pool_size = n 为用于内部管理的各种数据结构分配的缓存区最大长度(默认设置是1MB).
innodb_file_io_threads = n I/O操作(硬盘写操作)的最大线程个数(默认设置是4).
innodb_thread_concurrency = n InnoDB驱动程序能够同时使用的最大线程个数(默认设置是8).
mysqld程序--其它选项
bind-address = ipaddr MySQL服务器的IP地址.如果MySQL服务器所在的计算机有多个IP地址,这个选项将非常重要.
default-storage-engine = type 新数据表的默认数据表类型(默认设置是MyISAM).这项设置还可以通过--default-table-type选项来设置.
default-timezone = name 为MySQL服务器设置一个地理时区(如果它与本地计算机的地理时区不一样).
ft_min_word_len = n 全文索引的最小单词长度工.这个选项的默认设置是4,意思是在创建全文索引时不考虑那些由3个或更少的字符构建单词.
Max-allowed-packet = n 客户与服务器之间交换的数据包的最大长度,这个数字至少应该大于客户程序将要处理的最大BLOB块的长度.这个选项的默认设置是1MB.
Sql-mode = model1, mode2, ... MySQL将运行在哪一种SQL模式下.这个选项的作用是让MySQL与其他的数据库系统保持最大程度的兼容.这个选项的可取值包括ansi、db2、oracle、no_zero_date、pipes_as_concat.
注意:如果在配置文件里给出的某个选项是mysqld无法识别的(如,因为犯了一个愚蠢的打字错误),MySQL服务器将不启动.