目录

前言

1. 一般信息

2. 安装MySQL

3. 教程

4. MySQL程序概述

5. 数据库管理

6. MySQL中的复制

7. 优化

8. 客户端和实用工具程序

9. 语言结构

10. 字符集支持

11. 列类型

12. 函数和操作符

13. SQL语句语法

14. 插件式存储引擎体系结构

15. 存储引擎和表类型

16. 编写自定义存储引擎

17. MySQL簇

18. 分区

19. MySQL中的空间扩展

20. 存储程序和函数

21. 触发程序

22. 视图

23. INFORMATION_SCHEMA信息

24. 精度数学

25. API和库

26. 连接器

27. 扩展MySQL

A. 问题和常见错误

B. 错误代码和消息

C. 感谢

D. MySQL变更史

E. 移植到其他系统

F. 环境变量

G. MySQL正则表达式

H. MySQL中的限制

I. 特性限制

J. GNU通用公共许可

K. MySQL FLOSS许可例外

索引

附录C:感谢

在本附录中,列出了帮助MySQL达到其现状的开发人员、贡献人和支持人员。

C.1. MySQL AB处的开发人

他们是MySQL AB公司雇佣或曾经雇佣的、负责MySQL数据库软件的开发人员,大概按照他们与我们一起工作的时间顺序排列。在每位开发人员后面,列出了其负责的一些任务,或取得的部分成就。所有的开发人员均参与支持。

·         Michael (Monty) Widenius

o        领导MySQL服务器的开发人员和主要作者(mysqld)。

o        用于字符串库的新函数。

o        大多数mysys库。

o        ISAMMyISAMB-tree索引文件处理程序,以及索引压缩和不同的记录格式)。

o        HEAP库。内存表系统,以及优异的全动态混编处理功能。1981年其使用,1984年左右发布。

o        replace程序(不妨一看,它很酷!)

o        Connector/ODBC (MyODBC),用于WindowsODBC驱动程序。

o        更正了MIT-pthreads中存在的问题,使之能与MySQL服务器一起工作。以及Unireg,具备众多功能的基于光标的应用工具。

o        mSQL工具的移植,如msqlperlDBD/DBIDB2mysql等。

o        大多数crash-me,以及MySQL基准的建立。

·         David Axmark

o        “参考手册”的最初主要作者,包括对texi2html的增强。

o        从手动更新到自动网站更新。

o        最初的AutoconfAutomakeLibtool支持。

o        许可事宜.

o        参与了所有文本文件的编制(目前仅剩下README其余仅出现在手册中)。

o        众多对新特性的测试。

o        我方内部的免费软件法律专家。

o        邮件列表维护人(从没时间恰当维护它)。

o        我方最初的移植代码(到目前为止超过10年)。目前仅剩下mysys的一部分。

o        当他刚使新特性起作用时,是Monty半夜呼叫的重要人物。

o        首席"开放源码人员"MySQL社区关系)

·         Jani Tolonen

o        mysqlimport

o        对命令行的众多扩展。

o        PROCEDURE ANALYSE()

·         Sinisa Milivojevic(目前提供支持服务)

o        客户端/服务器协议中的压缩(用zlib)。

o        完美的混编,针对词汇分析器阶段。

o        多行INSERT

o        mysqldump e选项。

o        LOAD DATA LOCAL INFILE

o        SQL_CALC_FOUND_ROWS SELECT选项。

o        --max-user-connections=...选项。

o        net_read and net_write_timeout

o        GRANT/REVOKESHOW GRANTS FOR

o        新的客户端/服务器协议,用于4.0

o        4.0中的UNION

o        多表DELETE/UPDATE

o        4.1中的导出表。

o        用户资源管理。

o        MySQL++ C++ APIMySQLGUI客户端的最初开发人员

·         Tonu Samuel(过去的开发人员)

o        VIO接口(加密客户端/服务器协议的基础)。

o        MySQL Filesystem(将MySQL数据库作为文件和目录使用的一种方式)

o        CASE表达式

o        MD5()COALESCE()函数。

o        MyISAM表的RAID支持。

·         Sasha Pachev(过去的开发人员)

o        最初的复制史事(直至4.0版)。

o        SHOW CREATE TABLE.

o        mysql-bench

·         Matt Wagner

o        MySQL测试套件。

o        Webmaster(直到2002)。

·         Miguel Solorzano(目前提供支持服务)

o        Win32开发和版本创建。

o        Windows NT服务器代码。

o        WinMySQLAdmin

·         Timothy Smith(目前提供支持服务)

o        动态字符集支持。

o        配置、RPM、以及创建系统的其他部分。

o        嵌入式服务器libmysqld的最初开发人员。

·         Sergei Golubchik

o        全文本搜索。

o        MERGE库增加了多个 键。

o        精度数学

·         Jeremy Cole(过去的开发人员)

o        本精细手册的较对和编辑。

o        ALTER TABLE ... ORDER BY ....

o        UPDATE ... ORDER BY ....

o        DELETE ... ORDER BY ....

·         Indrek Siitan

o        我方Web接口的设计/编程。

o        我方时事通报管理系统的作者。

·         Jorge del Conde(目前提供支持服务)

o        MySQLCC (MySQL控制中心)

o        Win32开发

o        网站门户的最初实施。

·         Venu Anuganti(过去的开发人员)

o        MyODBC 3.51

o        用于4.1的新客户端/服务器协议(对于预处理语句)。

·         Arjen Lentz(目前负责社区事宜)

o        MySQL参考手册的维护人员。

o        准备了该手册的O'Reilly印刷版。

·         Alexander (Bar) BarkovAlexey (Holyfoot) Botchkov、以及Ramil Kalimullin

o        针对4.1的空间数据(GIS)和R-Trees实施。

o        用于4.1Unicode和字符集,以及文档。

·         Oleksandr (Sanja) Byelkin

o        4.0中的查询高速缓冲。

o        子查询的实施(4.1)。

o        视图和导出表的实施(5.0)。

·         Aleksey (Walrus) KishkinAlexey (Ranger) Stroganov

o        基准设计和分析。

o        MySQL测试套件的维护。

·         Zak Greant(以前的雇员)

o        开放源码宣传人,MySQL社区关系。

·         Carsten Pedersen

o        MySQL认证计划。

·         Lenz Grimmer

o        生产(创建和发布)工程。

·         Peter Zaitsev

o        SHA1()AES_ENCRYPT()AES_DECRYPT()函数。

o        调试并整理了各种特性。

·         Alexander (Salle) Keremidarski

o        支持。

o        调试。

·         Per-Erik Martin

o        存储程序的主要开发人员(5.0)。

·         Jim Winstead

o        以前的首席Web开发人员。

o        改进了服务器,更正了缺陷。

·         Mark Matthews

o        Connector/J driver (Java).

·         Peter Gulutzan

o        SQL标准兼容。

o        现有MySQL代码/算法的文档记录。

o        字符集文档。

·         Guilhem Bichot

o        复制,从MySQL 4.0板开始。

o        更正了DECIMAL指数的处理功能。

o        Author of mysql_tableinfo.

o        备份(5.1中)。

·         Antony T. Curtis

o        MySQL数据库软件移植到OS/2

·         Mikael Ronstrom

o        2000年前,大量关于NDB簇的初始工作。在那时完成了约一半的代码基数。事物协议、节点恢复、系统重启、以及API功能的重启代码和部分内容。

o        19942004NDB簇的首席设计师、开发人员和调试人员。

o        众多优化。

·         Jonas Oreland

o        在线备份

o        MySQL簇的自动测试环境

o        用于NDB簇的移植库

o        众多其他事项

·         Pekka Nouisiainen

o        MySQL簇的有序索引实施

o        MySQL簇中的BLOB支持

o        MySQL簇中的字符集支持。

·         Martin Skold

o        MySQL簇的为一索引实施

o        NDB簇集成到MySQL

·         Magnus Svensson

o        MySQL簇的测试架构

o        NDB簇集成到MySQL

·         Tomas Ulin

o        大量关于配置变更方面的工作,简化了MySQL簇的安装和使用。

·         Konstantin Osipov

o        预处理语句。

o        光标

·         Dmitri Lenev

o        时区支持。

o        触发程序(5.0中)。

C.2. MySQL贡献人

尽管MySQL AB公司拥有MySQL服务器和MySQL手册的所有版权,对那些为MySQL的发布作出这样或那样贡献的人员,我们深表感谢和赞赏。下面按一定的随机顺序列出了这些贡献者:

·         Gianmassimo Vigazzola <qwerg@mbox.vol.it> or <qwerg@tin.it>

Win32/NT的最初移植

·         Per Eric Olsson

或多或少的有建设性意义的批评,以及对动态记录格式实际测试。

·         Irena Pancirov <irena@mail.yacc.it>

Borland 编译器一起使用的Win32端口。mysqlshutdown.exemysqlwatch.exe

·         David J. Hughes

为了创建共享软件SQL数据库,在MySQL AB公司的前身TcX,我们从mSQL着手,但发现它不能满足的目的要求,因此,我们为自己的应用程序构造程序Unireg编写了SQL接口。Mysqladminmysql客户端是在很大程度上受其mSQL对等物影响的程序。我们进行了大量努力,努力使MySQL语法成为mSQL的超集。我们从mSQL借鉴了很多API的概念,以便能更容易地将免费的mSQL程序移植到MySQL APIMySQL软件不含任何来自mSQL的代码。分发版中的两个文件client/insert_test.cclient/select_test.c)分别基于mSQL发布版中对应的(非版权保护)文件,但作为示例对其进行了更改,给出了从mSQL代码转换为MySQL服务器所需的更改(mSQL的版权归David J. Hughes所有)。

·         Patrick Lynch

帮助我们获得http://www.mysql.com/

·         Fred Lindberg

设置了qmail以处理MySQL邮件列表,并在管理MySQL邮件列表方面为我们提供了无与伦比的帮助。

·         Igor Romanenko <igor@frog.kiev.ua>

Mysqldump(以前为msqldump,但被Monty移植并予以增强)。

·         Yuri Dario

保持并扩展了MySQL OS/2端口。

·         Tim Bunce

mysqlhotcopy的作者。

·         Zarko Mocnik <zarko.mocnik@dem.si>

为斯洛文尼亚语进行了分类。

·         "TAMITO" <tommy@valley.ne.jp>

_MB字符集宏以及ujissjis字符集。

·         Joshua Chamas <joshua@chamas.com>

为并发插入奠定了基础,扩展了日期语法,在NT上进行了调试,并在MySQL邮件列表上回答问题。

·         Yves Carlier <Yves.Carlier@rug.ac.be>

Mysqlaccess,显示用户访问权限的程序。

·         Rhys Jones <rhys@wales.com> (And GWE Technologies Limited)

提供了早期的JDBC驱动程序之一。

·         Dr Xiaokun Kelvin ZHU <X.Zhu@brad.ac.uk>

进一步发展了早期的JDBC驱动程序之一,并开发了其他与MySQL有关的Java工具。

·         James Cooper <pixel@organic.com>

在他的站点建立了可搜索的邮件列表档案。

·         Rick Mehalick <Rick_Mehalick@i-o.com>

贡献了xmysql,一种用于MySQL服务器的图形化X客户端。

·         Doug Sisk <sisk@wix.com>

Red Hat Linux提供了MySQLRPM软件包。

·         Diemand Alexander V. <axeld@vial.ethz.ch>

Red Hat Linux-Alpha提供了MySQLRPM软件包。

·         Antoni Pamies Olive <toni@readysoft.es>

IntelSPARC提供了众多MySQL客户端的RPM版本。

·         Jay Bloodworth <jay@pathways.sde.state.sc.us>

MySQL 3.21提供了RPM版本。

·         David Sacerdote <davids@secnet.com>

贡献了关于DNS主机名安全检查的多项概念。

·         Wei-Jou Chen <jou@nematic.ieo.nctu.edu.tw>

对中文字符(BIG5)的一些支持。

·         Wei He <hewei@mail.ied.ac.cn>

为中文字符集(GBK)提供了众多功能。

·         Jan Pazdziora <adelton@fi.muni.cz>

捷克语分类顺序。

·         Zeev Suraski <bourbon@netvision.net.il>

FROM_UNIXTIME()时间格式化,ENCRYPT()函数,以及bison顾问。主动邮件列表成员。

·         Luuk de Boer <luuk@wxs.nl>

将基准套件移植到(并扩展了它)DBI/DBD。对于crash-me和运行基准很有帮助。一些新的日期函数。mysql_setpermission脚本。

·         Alexis Mikhailov <root@medinf.chuvashia.su>

用户定义函数(UDFs),CREATE FUNCTIONDROP FUNCTION

·         Andreas F. Bobak <bobak@relog.ch>

对用户定义函数的AGGREGATE扩展。

·         Ross Wakelin <R.Wakelin@march.co.uk>

帮助创建了用于MySQL-Win32InstallShield

·         Jethro Wright III <jetman@li.net>

libmysql.dll库。

·         James Pereria <jpereira@iafrica.com>

Mysqlmanager1种用于管理MySQL服务器的Win32 GUI工具。

·         Curt Sampson <cjs@portal.ca>

MIT-pthreads移植到NetBSD/AlphaNetBSD 1.3/i386

·         Martin Ramsch <m.ramsch@computer.org>

MySQL教程中的示例。

·         Steve Harvey

使得创建mysqlaccess更安全。

·         Konark IA-64 Centre of Persistent Systems Private Limited

http://www.pspl.co.in/konark/。为MySQL服务器的Win64端口提供了帮助。

·         Albert Chin-A-Young.

Tru64配置了更新项,大文件支持和更好的TCP包装支持。

·         John Birrell

模拟了用于OS/2pthread_mutex()

·         Benjamin Pflugmann

扩展了MERGE表以处理INSERTSMySQL邮件列表上的积极成员。

·         Jocelyn Fournier

准确判定并通报了无数缺陷(尤其是在MySQL 4.1子查询代码中)。

·         Marc Liyanage

维护Mac OS X软件包,并就如何创建Mac OS X PKG提供了无价的反馈意见。

·         Robert Rutherford

QNX端口提供了无价的信息和反馈。

·         NDB簇以前的开发人员

以各种途径包含众多人员,访问学生、做课题的学生、雇员。总数超过100,人数太多,不可能在此意义提及。著名人员包括Ataullah Dabaghi,在1999年之前,贡献了约1/3的代码基数。特别感谢AXE系统的开发人员,该系统为具备块、信号和崩溃跟踪功能的NDB簇提供了结构基础。此外,还要感谢从1992年到现在、对这些理念坚信不疑并将其预算用于该项开发的人员。

其他的贡献人、缺陷发现人和测试人:James H. ThompsonMaurizio MenghiniWojciech TrycLuca BerraZarko MocnikWim BonisElmar Haneke<jehamby@lightside><psmith@BayNetworks.com><duane@connect.com.au>Ted Deppner <ted@psyber.com>Mike SimonsJaakko Hyvatti

此外,还有很多由邮件列表上的人员贡献的缺陷通报/补丁。

十分感谢那些帮助我们在MySQL邮件列表上回答问题的人员:

·         Daniel Koch <dkoch@amcity.com>

Irix设置。

·         Luuk de Boer <luuk@wxs.nl>

基准问题。

·         Tim Sailer <tps@users.buoy.com>

DBD::mysql问题。

·         Boyd Lynn Gerber <gerberb@zenez.com>

SCO有关的问题。

·         Richard Mehalick <RM186061@shellus.com>

xmysql有关的问题和基本的安装问题。

·         Zeev Suraski <bourbon@netvision.net.il>

Apache模块配置问题(登录和鉴定),与PHP有关的问题,与SQL语法有关的问题,以及其他一般问题。

·         Francesc Guasch <frankie@citel.upc.es>

一般问题。

·         Jonathan J Smith <jsmith@wtp.net>

Linux操作系统有关的问题,SQL语法,以及需要某些工作的其他事宜。

·         David Sklar <sklar@student.net>

PHPPerl使用MySQL

·         Alistair MacDonald <A.MacDonald@uel.ac.uk>

尚未指定,但很灵活,并能处理与Linux以及或许HP-UX有关的问题,帮助用户使用mysqlbug

·         John Lyon <jlyon@imag.net>

关于在Linux系统上安装MySQL的问题,使用.rpm文件,或从源码进行编译。

·         Lorvid Ltd. <lorvid@WOLFENET.com>

简单的记账/许可/支持/版权事宜。

·         Patrick Sherrill <patrick@coconet.com>

ODBCVisualC++接口有关的问题。

·         Randy Harmon <rjharmon@uptimecomputers.com>

DBDLinux、以及一些SQL语法有关的问题。

C.3. 资料员和译员

下述人员帮助我们编写了MySQL文档,并翻译了文档以及MySQL中的错误信息。

·         Paul DuBois

正在为本手册的正确性和可理解性提供帮助。包括改写了MontyDavid的英文尝试,使其成为其他人理解的英语。

·         Kim Aldale

帮助改写了MontyDavid的英文早期尝试,将其改写为英语。

·         Michael J. Miller Jr. <mke@terrapin.turbolift.com>

1MySQL手册。更正了关于常见问题的很多拼写/语言问题(很久以前被纳入MySQL手册)。

·         Yan Cailin

2000年初,将MySQL参考手册翻译为简体中文的译员,Big5HK编码(http://mysql.hitstar.com/)版本以其翻译本为基础。linuxdb.yeah.net上的个人主页

·         Jay Flaherty <fty@mediapulse.com>

本手册中Perl DBI/DBD一节的很大部分。

·         Paul Southworth <pauls@etext.org>, Ray Loyzaga <yar@cs.su.oz.au>

校对参考手册。

·         Therrien Gilbert <gilbert@ican.net>, Jean-Marc Pouyot <jmp@scalaire.fr>

法语错误消息。

·         Petr Snajdr, <snajdr@pvt.net>

捷克语错误消息。

·         Jaroslaw Lewandowski <jotel@itnet.com.pl>

波兰语错误消息。

·         Miguel Angel Fernandez Roiz

西班牙语错误消息。

·         Roy-Magne Mo <rmo@www.hivolda.no>

挪威语错误消息,以及MySQL 3.21.xx的测试。

·         Timur I. Bakeyev <root@timur.tatarstan.ru>

俄语错误消息。

·         <brenno@dewinter.com> & Filippo Grassilli <phil@hyppo.com>

意大利语错误消息。

·         Dirk Munzinger <dirk@trinity.saar.de>

德语错误消息。

·         Billik Stefan <billik@sun.uniag.sk>

斯洛伐克语错误消息。

·         Stefan Saroiu <tzoompy@cs.washington.edu>

罗马尼亚语错误消息。

·         Peter Feher

匈牙利语错误消息。

·         Roberto M. Serqueira

葡萄牙语错误消息。

·         Carsten H. Pedersen

丹麦语错误消息。

·         Arjen G. Lentz

荷兰语错误消息,完成了早期的部分翻译(也负责一致性和拼写问题)。

C.4. MySQL使用和包含的库

下面列出了在MySQL服务器源码中包含的库的创建人,源码简化了MySQL的编译和安装。对于创建这些库的所有个人我们深表谢意,它使得我们的生活变得简单。

·         Fred Fish

感谢他提供的优异C调试和跟踪库。Monty对库进行了大量的小改进(速度和额外选项)。

·         Richard A. O'Keefe

感谢他提供的公共域字符串库。

·         Henry Spencer

感谢他的regex库,用在WHEREREGEXP regexp中。

·         Chris Provenzano

便携用户级别的pthreads。由于版权:本产品包含由加利福尼亚大学伯克利分校的Chris Provenzano以及多名贡献人开发的软件。我们目前使用的是由Monty修补的1_60_beta6版(请参见mit-pthreads/Changes-mysql)。

·         Jean-loup Gailly and Mark Adler

zlib库(用于Windows平台上的MySQL)。

·         Bjorn Benson

感谢他的safe_malloc(内存检验器)软件包,当你用“--debug”配置MySQL时将用到它。

·         Free Software Foundation

readline库(由mysql命令行客户端使用)。

·         The NetBSD foundation

libedit软件包(可被mysql命令行客户端使用)。

C.5. 支持MySQL的软件包

下面列出了一些最重要API/软件包/应用程序的创建人和维护人,很多人员与MySQL一起使用了它们。

我们无法在此列出所有的软件包,这是因为,如果这样,该列表将很难维护。关于其他软件包,请访问软件门户站点http://solutions.mysql.com/software/

·         Tim Bunce, Alligator Descartes

DBD (Perl)接口。

·         Andreas Koenig <a.koenig@mind.de>

用于MySQL服务器的Perl接口。

·         Jochen Wiedmann <wiedmann@neckar-alb.de>

维护Perl DBD::mysql模块。

·         Eugene Chan <eugene@acenet.com.sg>

移植针对MySQL服务器的PHP

·         Georg Richter

MySQL 4.1测试和缺陷追踪。新的PHP 5.0 mysqli扩展API),用于MySQL 4.1和更高版本。

·         Giovanni Maruzzelli <maruzz@matrice.it>

移植iODBC (Unix ODBC)

·         Xavier Leroy <Xavier.Leroy@inria.fr>

LinuxThreads的作者(供Linux平台上的MySQL服务器使用)。

C.6. 用于创建MySQL的工具

下面列出了一些我们用于创建MySQL的工具。我们借此表达对那些创建了它们的人员的谢意,如果没有它们,我们将无法使MySQL达到目前的状况。

·         自由软件基金会

从该基金会,我们获得了优异的编译器(gcc),良好的调试器(gdblibc(我们从中借用了strto.c,从而使得部分代码能工作在Linux环境下)。

·         自由软件基金会和Xemacs开发团队

MySQL AB公司几乎人员使用的强大的编辑器/环境。

·         Julian Seward

valgrind的作者,valgrind是一种优异的内存检验器工具,它帮助我们找到了MySQL中很多用其他方法难以发现的缺陷。

·         Dorothea LütkehausAndreas Zeller

DDD(数据显示调试器)1种优秀的gdb图形前端。

C.7. MySQL支持人员

尽管MySQL AB公司拥有MySQL服务器和MySQL手册的所有版权,对那些从财政上帮助我们开发MySQL服务器(如向我们支付开发新特性的费用,或为我们提供用于MySQL服务器开发的硬件)的下述公司,我们深表感谢和赞赏。

·         VA Linux / Andover.net

资助复制。

·         NuSphere

MySQL手册的编辑。

·         Stork Design studio

1998-2000期间使用的MySQL网站。

·         Intel

WindowsLinux平台上的开发提供了捐助。

·         Compaq

Linux/Alpha平台上的开发提供了捐助。

·         SWSoft

嵌入式mysqld版本的开发

·         FutureQuest

--skip-show-database


这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。


This file is decompiled by an unregistered version of ChmDecompiler.
Regsitered version does not show this message.
You can download ChmDecompiler at : http://www.etextwizard.com/