`
free_bird816
  • 浏览: 197278 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

linux下MySQL配置文件讲解[转载

阅读更多

MySQL配置文件

文章来源:[url]http://www.linuxidc.com/Linux/2009-04/19285.htm[/url]

    MySQL发布的最新产品实际上超出了Red Hat Enterprise Linux所携带的版本。但是,稳定性和开放源代码可是很重要的因素,因此在操作系统上使用较早MySQL版本是有道理的。

    有许多可以采用的配置文件,它们都被包含在mysql-server PRM程序中。还有一个默认的配置文件被包含在mysql PRM程序包中。

配置MySQL服务器是一个丰富而复杂的工作。在本文中,我只能肤浅的说一下各种选项。可以使用的MySQL配置文件共有5个。最后4个位于/usr/share/doc/mysql-server-*/目录中。

·/etc/my.cnf是默认的MySQL配置文件。应该对这个文件配置修改。它是为学习目的而设计的。

·my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。

·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。

·my-large.cnf是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。

·my-huge.cnf是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。

这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。

我将逐个的说明这些配置文件。如果用户决定使用my-*.cnf文件之一,将首先需要把这个文件复制到/etc/my.cnf文件上。

由于这些原因,用户应该仔细观察数据库系统的性能。如果发现问题,可能需要增加更多的RAM,或者把数据库迁移到一个含有附加资源(比如多个CPU)的系统上。

提示:数据库变得非常大。把一个SQL数据库目录配置在一个专用分区上可能更有道理。虽然一个不断增长的数据库可能会占满整个分区,但它至少不会吞掉RHEL运行所必需的磁盘空间。

/etc/my.cnf文件

默认是/etc/my.cnf文件。它包含6条命令,并且这6条命令被组织在3个配置段中。这些配置段与Samba配置文件中的配置段相似,并且含有功能组名称和相关的命令。本文将逐行的说明这个文件的默认版本。如果用户进行了任何修改,将需要确保MySQL启动脚本(即/etc/rc.d /init.d/mysqld)中的命令一致。

[mysqld]

在这个配置段之内,将会看到与MySQL守护进程相关的命令。

datadir=/var/lib/mysql

MySQL服务器把数据库存储在由datadir变量所定义的目录中。

Socket=/var/lib/mysql/mysql.sock

MySQL套接字把数据库程序局部的或通过网络连接到MySQL客户。

提示:MySQL被配置成使用InnoDB存储器引擎。如果用户在自己的系统上还没有一个InnoDB数据库,将需要给[mysqld]配置段添加skip-innodb语句。

[mysql.server]

在这个配置段之内,将会看到MySQL服务器守护进程有关的命令。这个配置段的较早期版本被命名为[mysql_server]。如果使用 MySQL4.X或MySQL4.X以上版本,将必须把这个配置段标题改成[mysql_server]。当启动MySQL服务时,它使用这个配置段中的选项。

user=mysql

与MySQL服务相关联的标准用户名是mysql。它应该是/etc/passwd文件的一部分;如果在这个文件中没有发现它,用户可能还没有安装Red Hat Enterprise Linux mysql-server RPM程序包。

basedir=/var/lib

这表示MySQL数据库的顶级目录。它充当MySQL系统上的一个根目录;这个数据库中的其它目录都是相对于这个目录。

[safe_mysqld]

这个配置段包含MySQL启动脚本所引用的命令。如果使用MySQL4.X或4.X以上版本,必须把这个配置段改成[mysqld_safe]。

err-log=/var/log/mysqld.log

这是MySQL所关联的错误被发送到的这个文件。如果使用MySQL4.X或4.X以上版本,必须使用log-error指令替换这条命令。

pid-file=/var/run/mysqld/mysqld.pid

最后,pid-file指令定义MySQL服务器在运作期间的进程标识符(PID)。如果MySQL服务器当前没有运行,这个文件应该不存在。

提示:用户可以配置与用户特定相关的MySQL配置文件;为此,只需给指定用户主目录中的.my.cnf隐含文件添加所选的配置命令即可。

my-samll-cnf

在本文中,将说明my-small-cnf配置文本中的所有命令。当回顾其它MySQL样本配置文件时,将参考本文所解释的各条命令和指令的含义。先从下面这个配置段开始分析该文件中的有效命令和指令:

[client]

这个配置把指令传递给与MySQL服务器相关的客户。

port=3306

MySQL所相关的标准TCP/IP端口是3306。如果需要修改这个端口号(可以增强安全),必须确保用于MySQL客户与服务器的所有相应配置文件中均修改这个号。

socket=/var/lib/mysql/mysql.sock

正像默认的/etc/my.cnf文件中所定义的那样,这是控制MySQL客户与服务器间通信的标准套接字文件。

[mysqld]

当启动MySQL服务器时,它由[mysqld]配置段中所定义的命令来控制。

port=3306

socket=/var/lib/mysql/mysql.sock

当然,与同一个MySQL数据库相关的客户与服务器需要使用相同的TCP/IP端口和套接字。

skip-locking

多个客户可能会访问同一个数据库,因此这防止外部客户锁定MySQL服务器。这个skip-locking命令是MySQL4.X或4.X以上版本中的skip-external-locking命令。

一般来说,如果正在使用MySQL4.X或4.X上以版本,这个set-variable指令没有必要带有这个列表中的这些命令。

set-variable=key_buffer=16k

这个缓冲区确实很小;如果一个数据库在一个文本文件中包含不止几百行数据,它将会超载这个缓冲区的容量。这个数据库可能不会超载一个文本文件地址簿的容量。如果这不只是一个供个人使用的数据库,这个限额很快就会被达到。假使那样的话,可能需要考虑与其它配置文件之一相关的那些限额。

set-variable=max_allowed_packet=1M

当然,与一个数据库相关的信息会增加到超出实际数据。在默认的情况下,如果该信息在一个服务器上超过1MB以上,MySQL将会产生一条错误信息。

set-variable=thread_stack=64k

这条指令限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用。

set-variable=table_cache=4

用户可以限定一个数据库中打开表的数量;越小的限额(默认值是64)适合越小规模的数据库。

set-variable=sort_buffer=64k

在处理一个数据库时,用户可能需要内存中附加的缓冲区空间。

set-variable=net_buffer_length=2k

正如net_buffer_length指令所定义的,MySQL服务器还给传入的请求保留了空间。

server-id=1

一般来说,如果有一个MySQL主服务器,应该把它的server-id设置成1;应该把MySQL从属服务器的server-id设置成2;

[mysqldump]

用户可以在不同类型的SQL数据库之间传输数据,这由[mysqldump]配置段中的命令来控制。

quick

quick选项支持较大数据库的转储。

set-variable=max_allowed_packet=16M

当然,用来传输数据库表到其它数据库的max_allowed_packet大于客户与服务器之间的简单通信所使用的信息包。

[mysql]

no-auto-rehash

这个配置段设置启动MySQL服务的条件;在这种情况下,no-auto-rehash确保这个服务启动得比较快。

[isamchk]

[myisamchk]

像SQL这样的关系数据库用所谓的Indexed Sequential Access Method(索引顺序存取方法,简称ISAM)来处理。这两个配置段中的命令是相同的;这些命令与检查并修复数据库表的同名命令有关。

set-variable=key_buffer=8M

set-variable=sort_buffer=8M

在前面谈及MySQL服务器时,用户己经见过这些变量。它们在这里都比较大,以便支持数据库的较快速检查与修复。

[mysqlhotcopy]

interactive-timeout

正如[mysqlhotcopy]配置段所指定的,在一个数据库复制操作期间,连接会挂起。在默认情况下,interactive-timeout变量把一个数据传输的最大时间量设置为28800秒(8个小时)。

my-medium.cnf文件

与中等数据库相关的MySQL配置文件含有和my-small-cnf配置文件中一样的有效配置段。在[mysqld]配置段中,下面这些命令支持较大规模的服务器数据库:

set-variable=key_buffer=16M

set-variable=table_cache=64

set-variable=sort_buffer=512K

set-variable=net_buffer_length=8K

log-bin

一般来说,这个配置段中的命令支持服务器上的较大高速缓存与缓冲区长度。应该看到两条新命令。

set-variable=myisam_sort_buffer_size=8M

log-bin

myisam_sort_buffer_size命令允许MySQL索引数据库,第二条命令支持二进制日志记录方法。

[isamchk]

[myisamchk]

当然,这两个配置段中的缓冲区比用于数据库传输的缓冲区大,这个文件包含下面这些命令;它们发送消息到服务器和接收来自服务器的消息。

set-variable=read_buffer=2M

set-variable=write_buffer=2M

my-large.cnf文件

与较大型数据库相关的MySQL配置文件含有和my-samll-cnf配置文件中一样的有效配置段。在本文中,将比较my-large-cnf与my-medium-cnf样本文件中的各条命令。在[mysqld]配置段中,下面这些命令支持较大型的服务器数据库:

set-variable=key_buffer=256M

set-variable=table_cache=256

set-variable=sort_buffer=1M

set-variable=myisam_sort_buffer_size=64M

set-variable=net_buffer_length=8K

这个配置段中有3条附加的命令。record_buffer命令保存对一个数据库中不同表的扫描结果。thread_cache命令对多请求有用;空闲线程被高速缓存起来,进而允许新的搜索操作采用己有的线程。只要这防止搜索操作启动新的服务器进程,这就能减轻系统上的负荷。

set-variable=record_buffer=1M

set-variable=thread_cache=8

set-variable=thread_concurrency=8

thread_concurrency变量限定同时运行的线程数量。my-large.cnf样本文件建议用户应该把这个数量限定于本计算机上CPU数量的两倍;这个特定设置相当于4个CPU。

my-huge.cnf文件

my-huge.cnf文件含有和my-large.cnf配置文件中一样的命令。当然,分配给大多数指令的值比较大并适合较大型的数据库。

正如[url]wWw.mysql.com[/url]站点上所描述的,拥有大量数据库的组织,比如:google、 Sabre和NASA都采用MySQL。虽然我们猜测这些公司所使用的命令不同于用户在my-huge.cnf文件中所看到的命令,但这至少让用户对 MySQL企业级数据库有一个概念。

分享到:
评论

相关推荐

    跟老男孩学Linux运维:MySQL入门与提高实践.txt

    书中先介绍数据库的基础知识,比如,MYSQL数据库的产品路线、MYSQL版本等,然后给出安装配置方法,并针对企业级的安装配置进行说明。从第5章开始,着手讲解MYSQL的基础命令操作方法、备份和恢复实践、日志、字符集、...

    Linux下安装Java运行环境及优化.pdf

    本文档是《Linux下安装Java运行环境及优化》视频课配套文档,讲解了在VMware Workstation下安装Linux系统,并在Linux下安装Java运行环境及优化。...6)MySQL配置文件my.cnf 7)Linux下安装Java运行环境及优化.pdf

    Linux从入门到精通视频.zip

    14.Linux下Cacti深入配置.mp4 15.Linux下Kickstart自动化安装平台构建.mp4 16.Linux下构建Rsync同步服务器.mp4 17.Linux下Shell编程实战.mp4 18.Linux Shell编程必杀技命令.mp4 19.Linux下运维利器之Shell编程.mp4 ....

    Linux系统MySQL8.0.19快速安装配置教程图解

    Linux系统使用yum安装MySQL需要从网上下载MySQL的一系列组件,这个过程非常耗时且有下载中断的可能,如果想要快速安装MySQL,可以先在网上将MySQL的离线包下载下来传到系统内进行安装,本文以CentOS7和MySQL8.0.19为...

    linux下讲解MySQL安装与登录方法

    Fedora5下配置MySQL (很有参考价值的 MySQL资料 包括如何在linux文件系统移动MySQL数据库的位置) 一、下载MySQL安装文件 完全安装MySQL需要下面6个文件: MySQL-server-community-5.1.26-0.rhel4.i386.rpm MySQL-...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    20-安装heartbeat软件及配置文件讲解.avi 21-heartbeat的主要配置文件参数讲解.avi 22-实战配置heartbeat配置文件.avi 23-启动heartbeat服务并查看配置的VIP.avi 24-发生裂脑故障及根据前面原理排查思路.avi 25-通过...

    图文详解Ubuntu下安装配置Mysql教程

    2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例。 3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用mysql命令 网上安装和二进制包安装比较简单,重点说安装离线包。  1. ...

    如何使用Docker搭建MySQL主从数据库.zip

    本压缩文件包含两个pdf文件,详细讲解了如何在Linux系统中安装Docker、如何在Docker中安装和配置MySQL主数据库、如何在Docker中安装和配置MySQL从数据库以及如何验证主从数据库搭建正常,视频教程:...

    《MySQL数据库入门》教学设计.docx

    教师首先向学生演示如何在MySQL官网上,下载适用于Windows平台的5.5版本的安装包和适用于Linux平台的RPM安装包,然后,向学生演示如何在Windows和Linux平台下安装和配置MySQL。要求学生能够根据帮助文档正确安装...

    Linux服务器搭建实战详解 中文版

    介绍了在linux操作系统中各种常用服务的配置管理方法及其相关应用,包括ftp服务、电子邮件服务、web服务、dhcp服务、dns服务、代理服务、samba服务、nfs服务、ldap目录服务、ssh服务及mysql数据库服务等。...

    人工智能-项目实践-html-嵌入式web服务器BOA+CGI+HTML+MySQL项目实战-Linux.zip

    人工智能-项目实践-html-嵌入式web服务器BOA+CGI+HTML+MySQL项目实战——Linux 使用到的软件和技术 BOA服务器,CGI,CCGI,MySQL,SQLite。C,HTML,CSS,JS,SQL 具体功能讲解 1、运行BOA服务器 (来到BOA目录下...

    韩顺平.linux视频教程和PPT

    韩顺平.linux视频教程第17讲.mysql安装.配置.使用.wmv 96 MB 韩顺平.linux视频教程第18讲.ssh安装.配置.使用.wmv 64 MB 韩顺平.linux视频教程第19讲.补充讲解linux重要内容.wmv 41 MB 韩顺平.linux视频教程第20...

    Centos下Mysql安装图文教程

    Mysql是比较常用的数据库,日常开发中也是采用地比较多。工欲善其事必先利其器,本文特地来讲解下如何在centos(其他linux发行版类似)下安装Mysql。首先准备的材料:Mysql,我这里采用的是64位的,传送门: ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等多个方面深入讲解了如何构建高性能的Linux服务器。...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护mysql服务器。 书中内容以实战...

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    其次讲解了开源数据镜像备份工具rsync和umson的使用,并通过两个企业级案例演示了这两个工具在生产环境中的使用过程:最后讲解了如何利用ext3grep工具来恢复误删除的数据文件和MySQL数据库的方法。网络存储应用篇...

    入门学习Linux常用必会60个命令实例详解doc/txt

    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...

    个人博客网站项目资料(全)

    8、在服务器(Linux)上安装jdk和mysql视频教程 9、在服务器上配置网站项目,持续运行下去 B站视频讲解地址:https://www.bilibili.com/video/BV1EZ4y147fX/ 整个项目做完,即可拥有属于自己的网站,遇到问题欢迎...

    嵌入式\(高校应用案例)北航软件学院

    ZKQ090103 Linux 开发环境与应用程序设计 Linux C 编程基础,gdb调式器,Makefile文件概述;Linux系统调用原理;基于系统调用的文件I/O操作;文件上锁,程序机制与功能,特殊文件的操作;串口编程,串口通信的实现;...

Global site tag (gtag.js) - Google Analytics