manual.texi
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1883k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. input texinfo  @c -*-texinfo-*-
  2. @c Copyright 1997, 1998, 1999, 2000 TcX AB, Detron HB and MySQL Finland AB
  3. @c
  4. @c *********************************************************
  5. @c Note that @node names are used on our Website.
  6. @c So do not change node names without checking
  7. @c Makefile.am and SitePages first.
  8. @c *********************************************************
  9. @c
  10. @c %**start of header
  11. @c there's a better way to do this.. i just don't know it yet
  12. @c sed will remove the "@c ifnusphere " to make this valid
  13. @c ifnusphere @set nusphere 1
  14. @setfilename mysql.info
  15. @c We want the types in the same index
  16. @syncodeindex tp fn
  17. @c Get version information. This file is generated by the Makefile!!
  18. @include include.texi
  19. @ifclear tex-debug
  20. @c This removes the black squares in the right margin
  21. @finalout
  22. @end ifclear
  23. @c Set background for HTML
  24. @set _body_tags BGCOLOR=silver TEXT=#000000 LINK=#101090 VLINK=#7030B0
  25. @c Set some style elements for the manual in HTML form. 'suggested'
  26. @c natural language colours: aqua, black, blue, fuchsia, gray, green,
  27. @c lime, maroon, navy, olive, purple, red, silver, teal, white, and
  28. @c yellow. From Steeve Buehler <ahr@YogElements.com>
  29. @set _extra_head <style> code {color:purple} tt {color:green} samp {color:navy} pre {color:maroon} </style>
  30. @settitle @strong{MySQL} Reference Manual for version @value{mysql_version}.
  31. @c We want single-sided heading format, with chapters on new pages. To
  32. @c get double-sided format change 'on' below to 'odd'
  33. @ifclear nusphere
  34. @setchapternewpage on
  35. @end ifclear
  36. @ifset nusphere
  37. @setchapternewpage odd
  38. @end ifset
  39. @paragraphindent 0
  40. @ifset nusphere
  41. @smallbook
  42. @end ifset
  43. @c We want the contents at the beginning, where it's supposed to be.
  44. @setcontentsaftertitlepage
  45. @c %**end of header
  46. @ifinfo
  47. @format
  48. START-INFO-DIR-ENTRY
  49. * mysql: (mysql).               @strong{MySQL} documentation.
  50. END-INFO-DIR-ENTRY
  51. @end format
  52. @end ifinfo
  53. @titlepage
  54. @sp 10
  55. @center @titlefont{@strong{MySQL} Reference Manual}
  56. @sp 10
  57. @center Copyright @copyright{} 1997-2000 TcX AB, Detron HB and MySQL Finland AB
  58. @c blank page after title page makes page 1 be a page front.
  59. @c also makes the back of the title page blank.
  60. @page
  61. @end titlepage
  62. @c This should be added. The HTML conversion also needs a MySQL version
  63. @c number somewhere.
  64. @iftex
  65. @c change this to double if you want formatting for double-sided
  66. @c printing
  67. @headings single
  68. @ifclear nusphere
  69. @everyheading @thispage @| @| @thischapter
  70. @everyfooting @| @| Version: @value{mysql_version} Printed: @today{}
  71. @end ifclear
  72. @ifset nusphere
  73. @oddheading @thischapter @| @| @thispage
  74. @evenheading @thispage @| @| MySQL Technical Reference for Version @value{mysql_version}
  75. @end ifset
  76. @end iftex
  77. @node Top, Introduction, (dir), (dir)
  78. @c @ifhtml
  79. @c <IMG SRC="Images/mysql-logo.gif">
  80. @c <!--Image doesn't exist. Can't find suitable replacement. (Matt) -->
  81. @c @end ifhtml
  82. @ifinfo
  83. This is a manual for @strong{MySQL}. This version is about the
  84. @value{mysql_version} version of @strong{MySQL}. For a @strong{3.20}
  85. version see the relevant distribution.
  86. @end ifinfo
  87. @menu
  88. * Introduction::                General Information about @strong{MySQL}
  89. * Questions::                   @strong{MySQL} mailing lists and how to ask questions or report errors (bugs)
  90. * Licensing and Support::       @strong{MySQL} licensing and support
  91. * Installing::                  Installing @strong{MySQL}
  92. * Compatibility::               How standards-compatible is @strong{MySQL}?
  93. * Privilege system::            The @strong{MySQL} access privilege system
  94. * Reference::                   @strong{MySQL} language reference
  95. * Table types::                 @strong{MySQL} table types
  96. * Tutorial::                    @strong{MySQL} Tutorial
  97. * Server::                      @strong{MySQL} Server
  98. * Replication::                 Replication
  99. * Performance::                 Getting maximum performance from @strong{MySQL}
  100. * MySQL Benchmarks::            The @strong{MySQL} benchmark suite
  101. * Tools::                       @strong{MySQL} Utilities
  102. * Maintenance::                 Maintaining a @strong{MySQL} installation
  103. * Adding functions::            Adding new functions to @strong{MySQL}
  104. * Adding procedures::           Adding new procedures to @strong{MySQL}
  105. * ODBC::                        @strong{MySQL} ODBC Support
  106. * Common programs::             Using @strong{MySQL} with some common programs
  107. * Problems::                    Problems
  108. * Common problems::             Solving some common problems with @strong{MySQL}
  109. * Log files::                   
  110. * Clients::                     @strong{MySQL} client tools and APIs
  111. * Comparisons::                 How does @strong{MySQL} compare with other databases?
  112. * MySQL internals::             @strong{MySQL} internals
  113. * Environment variables::       @strong{MySQL} environment variables
  114. * Users::                       Some @strong{MySQL} users
  115. * MySQL customer usage::        
  116. * Contrib::                     Contributed programs
  117. * Credits::                     Contributors to @strong{MySQL}
  118. * News::                        @strong{MySQL} change history
  119. * Bugs::                        Known errors and design deficiencies in @strong{MySQL}
  120. * TODO::                        List of things we want to add to @strong{MySQL} in the future (The TODO)
  121. * Porting::                     Comments on porting to other systems
  122. * Regexp::                      Description of @strong{MySQL} regular expression syntax
  123. * Unireg::                      What is Unireg?
  124. * GPL license::                 GNU General Public License
  125. * LGPL license::                GNU Library General Public License
  126. * Function Index::              SQL command, type and function index
  127. * Concept Index::               Concept Index
  128. @detailmenu
  129.  --- The Detailed Node Listing ---
  130. General Information About MySQL
  131. * What-is::                     What is @strong{MySQL}?
  132. * What is MySQL AB::            
  133. * Manual-info::                 About this manual
  134. * History::                     History of @strong{MySQL}
  135. * MySQL-Books::                 Books about MySQL
  136. * Features::                    The main features of @strong{MySQL}
  137. * Stability::                   How stable is @strong{MySQL}?
  138. * Year 2000 compliance::        Year 2000 compliance
  139. * General-SQL::                 General SQL information and tutorials
  140. * Useful Links::                Useful @strong{MySQL}-related links
  141. About This Manual
  142. * Manual conventions::          Conventions used in this manual
  143. MySQL Mailing Lists
  144. * Mailing-list::                The @strong{MySQL} mailing lists
  145. * Asking questions::            Asking questions or reporting bugs
  146. * Bug reports::                 How to report bugs or problems
  147. * Answering questions::         Guidelines for answering questions on the mailing list
  148. MySQL Licensing and Support
  149. * Licensing policy::            @strong{MySQL} licensing policy
  150. * Copyright::                   Copyrights used by @strong{MySQL}
  151. * Licensing examples::          Example licensing situations
  152. * Cost::                        @strong{MySQL} licensing and support costs
  153. * Support::                     Types of commercial support
  154. Copyrights Used by MySQL
  155. * Copyright changes::           Possible future copyright changes
  156. Example Licensing Situations
  157. * Products that use MySQL::     Selling products that use @strong{MySQL}
  158. * ISP::                         ISP @strong{MySQL} services
  159. * Web server::                  Running a web server using @strong{MySQL}.
  160. MySQL Licensing and Support Costs
  161. * Payment information::         Payment information
  162. * Contact information::         Contact information
  163. Types of Commercial Support
  164. * Basic email support::         Basic email support
  165. * Extended email support::      Extended email support
  166. * Login support::               Login support
  167. * Extended login support::      Extended login support
  168. * Telephone support::           Telephone support
  169. * Table handler support::       Support for other table handlers
  170. Installing MySQL
  171. * Getting MySQL::               How to get @strong{MySQL}
  172. * Which OS::                    Operating systems supported by @strong{MySQL}
  173. * Which version::               Which @strong{MySQL} version to use
  174. * Many versions::               How and when updates are released
  175. * Installation layouts::        Installation layouts
  176. * Installing binary::           Installing a @strong{MySQL} binary distribution
  177. * Installing source::           Installing a @strong{MySQL} source distribution
  178. * Installing source tree::      Installing @strong{MySQL} from development source tree
  179. * Compilation problems::        Problems compiling?
  180. * MIT-pthreads::                MIT-pthreads notes
  181. * Perl support::                Perl installation comments
  182. * Source install system issues::  System-specific issues
  183. * Windows::                     Windows notes
  184. * OS/2::                        OS/2 notes
  185. * MySQL binaries::              MySQL binaries
  186. * Post-installation::           Post-installation setup and testing
  187. * Installing many servers::     Installing many servers on the same machine
  188. * Upgrade::                     Upgrading/Downgrading MySQL
  189. Installing a MySQL Binary Distribution
  190. * Linux-RPM::                   Linux RPM files
  191. * Building clients::            Building client programs
  192. * Binary install system issues::  System-specific issues
  193. System-specific Issues
  194. * Binary notes-Linux::          Linux notes for binary distribution
  195. * Binary notes-HP-UX::          HP-UX notes for binary distribution
  196. Installing a MySQL Source Distribution
  197. * Quick install::               Quick installation overview
  198. * Applying patches::            Applying patches
  199. * configure options::           Typical @code{configure} options
  200. Perl Installation Comments
  201. * Perl installation::           Installing Perl on Unix
  202. * ActiveState Perl::            Installing ActiveState Perl on Windows
  203. * Windows Perl::                Installing the @strong{MySQL} Perl distribution on Windows
  204. * Perl support problems::       Problems using the Perl @code{DBI}/@code{DBD} interface
  205. System-specific Issues
  206. * Solaris::                     Solaris notes
  207. * Solaris 2.7::                 Solaris 2.7 / 2.8 notes
  208. * Solaris x86::                 Solaris x86 notes
  209. * SunOS::                       SunOS 4 notes
  210. * Linux::                       Linux notes (all Linux versions)
  211. * Alpha-DEC-UNIX::              Alpha-DEC-UNIX notes
  212. * Alpha-DEC-OSF1::              Alpha-DEC-OSF1 notes
  213. * SGI-Irix::                    SGI-Irix notes
  214. * FreeBSD::                     FreeBSD notes
  215. * NetBSD::                      NetBSD notes
  216. * OpenBSD::                     OpenBSD 2.5 notes
  217. * BSDI::                        BSD/OS notes
  218. * SCO::                         SCO notes
  219. * SCO Unixware::                SCO Unixware 7.0 notes
  220. * IBM-AIX::                     IBM-AIX notes
  221. * HP-UX 10.20::                 HP-UX 10.20 notes
  222. * HP-UX 11.x::                  HP-UX 11.x notes
  223. * Mac OS X::                    Mac OS X notes
  224. * BEOS::                        BeOS Notes
  225. Linux Notes (All Linux Versions)
  226. * Linux-x86::                   Linux-x86 notes
  227. * Linux-RedHat50::              RedHat 5.0 notes
  228. * Linux-RedHat51::              RedHat 5.1 notes
  229. * Linux-SPARC::                 Linux-SPARC notes
  230. * Linux-Alpha::                 Linux-Alpha notes
  231. * MKLinux::                     MkLinux notes
  232. * Qube2::                       Qube2 Linux notes
  233. * Linux-Ia64::                  Linux-Ia64 notes
  234. OpenBSD Notes
  235. * OpenBSD 2.5::                 OpenBSD 2.5 Notes
  236. * OpenBSD 2.8::                 OpenBSD 2.8 Notes
  237. BSD/OS Notes
  238. * BSDI2::                       BSD/OS 2.x notes
  239. * BSDI3::                       BSD/OS 3.x notes
  240. * BSDI4::                       BSD/OS 4.x notes
  241. Mac OS X Notes
  242. * Mac OS X Public Data::        
  243. * Mac OS X Server::             
  244. Windows Notes
  245. * Windows installation::        Installing @strong{MySQL} on Windows
  246. * Win95 start::                 Starting @strong{MySQL} on Win95 / Win98
  247. * NT start::                    Starting @strong{MySQL} on NT / Win2000
  248. * Windows running::             Running @strong{MySQL} on Windows
  249. * Windows and SSH::             Connecting to a remote @strong{MySQL} from Windows with SSH
  250. * Windows symbolic links::      Splitting data across different disks under Win32
  251. * Windows compiling::           Compiling MySQL clients on Windows.
  252. * Windows and BDB tables.::     Windows and BDB Tables
  253. * Windows vs Unix::             @strong{MySQL}-Windows compared to Unix @strong{MySQL}
  254. Post-installation Setup and Testing
  255. * mysql_install_db::            Problems running @code{mysql_install_db}
  256. * Starting server::             Problems starting the @strong{MySQL} server
  257. * Automatic start::             Starting and stopping @strong{MySQL} automatically
  258. * Command-line options::        Command-line options
  259. * Option files::                Option files
  260. Upgrading/Downgrading MySQL
  261. * Upgrading-from-3.22::         Upgrading from a 3.22 version to 3.23
  262. * Upgrading-from-3.21::         Upgrading from a 3.21 version to 3.22
  263. * Upgrading-from-3.20::         Upgrading from a 3.20 version to 3.21
  264. * Upgrading-to-arch::           Upgrading to another architecture
  265. How Standards-compatible Is MySQL?
  266. * Extensions to ANSI::          @strong{MySQL} extensions to ANSI SQL92
  267. * ANSI mode::                   Running @strong{MySQL} in ANSI mode
  268. * Differences from ANSI::       @strong{MySQL} differences compared to ANSI SQL92
  269. * Missing functions::           Functionality missing from @strong{MySQL}
  270. * Standards::                   What standards does @strong{MySQL} follow?
  271. * Commit-rollback::             How to cope without @code{COMMIT}-@code{ROLLBACK}
  272. Functionality Missing from MySQL
  273. * Missing Sub-selects::         Sub-selects
  274. * Missing SELECT INTO TABLE::   @code{SELECT INTO TABLE}
  275. * Missing Transactions::        Transactions
  276. * Missing Triggers::            Triggers
  277. * Missing Foreign Keys::        Foreign Keys
  278. * Missing Views::               Views
  279. * Missing comments::            @samp{--} as the start of a comment
  280. Foreign Keys
  281. * Broken Foreign KEY::          Reasons NOT to use foreign keys constraints
  282. The MySQL Access Privilege System
  283. * General security::            General security
  284. * Security::                    How to make @strong{MySQL} secure against crackers
  285. * Privileges options::          
  286. * What Privileges::             What the privilege system does
  287. * User names::                  @strong{MySQL} user names and passwords
  288. * Connecting::                  Connecting to the @strong{MySQL} server
  289. * Password security::           Keeping your password secure
  290. * Privileges provided::         Privileges provided by @strong{MySQL}
  291. * Privileges::                  How the privilege system works
  292. * Connection access::           Access control, stage 1: Connection verification
  293. * Request access::              Access control, stage 2: Request verification
  294. * Privilege changes::           When privilege changes take effect
  295. * Default privileges::          Setting up the initial @strong{MySQL} privileges
  296. * Adding users::                Adding new user privileges to @strong{MySQL}
  297. * Passwords::                   How to set up passwords
  298. * Access denied::               Causes of @code{Access denied} errors
  299. MySQL Language Reference
  300. * Literals::                    Literals: how to write strings and numbers
  301. * Variables::                   User variables
  302. * Column types::                Column types
  303. * Functions::                   Functions
  304. * CREATE DATABASE::             @code{CREATE DATABASE} syntax
  305. * DROP DATABASE::               @code{DROP DATABASE} syntax
  306. * CREATE TABLE::                @code{CREATE TABLE} syntax
  307. * ALTER TABLE::                 @code{ALTER TABLE} syntax
  308. * RENAME TABLE::                @code{RENAME TABLE} syntax
  309. * DROP TABLE::                  @code{DROP TABLE} syntax
  310. * OPTIMIZE TABLE::              @code{OPTIMIZE TABLE} syntax
  311. * CHECK TABLE::                 @code{CHECK TABLE} syntax
  312. * BACKUP TABLE::                @code{BACKUP TABLE} syntax
  313. * RESTORE TABLE::               @code{RESTORE TABLE} syntax
  314. * ANALYZE TABLE::               @code{ANALYZE TABLE} syntax
  315. * REPAIR TABLE::                @code{REPAIR TABLE} syntax
  316. * DELETE::                      @code{DELETE} syntax
  317. * TRUNCATE::                    @code{TRUNCATE} syntax
  318. * SELECT::                      @code{SELECT} syntax
  319. * JOIN::                        @code{JOIN} syntax
  320. * INSERT::                      @code{INSERT} syntax
  321. * REPLACE::                     @code{REPLACE} syntax
  322. * LOAD DATA::                   @code{LOAD DATA INFILE} syntax
  323. * UPDATE::                      @code{UPDATE} syntax
  324. * USE::                         @code{USE} syntax
  325. * FLUSH::                       @code{Flush} syntax (clearing caches)
  326. * KILL::                        @code{KILL} syntax
  327. * SHOW::                        @code{SHOW} syntax (Get information about tables, columns, ...)
  328. * EXPLAIN::                     @code{EXPLAIN} syntax (Get information about a @code{SELECT})
  329. * DESCRIBE::                    @code{DESCRIBE} syntax (Get information about names of columns)
  330. * COMMIT::                      @code{BEGIN/COMMIT/ROLLBACK} syntax
  331. * LOCK TABLES::                 @code{LOCK TABLES/UNLOCK TABLES} syntax
  332. * SET OPTION::                  @code{SET OPTION} syntax
  333. * GRANT::                       @code{GRANT} and @code{REVOKE} syntax
  334. * CREATE INDEX::                @code{CREATE INDEX} syntax
  335. * DROP INDEX::                  @code{DROP INDEX} syntax
  336. * Comments::                    Comment syntax
  337. * CREATE FUNCTION::             @code{CREATE FUNCTION} syntax
  338. * Reserved words::              Is @strong{MySQL} picky about reserved words?
  339. Literals: How to Write Strings and Numbers
  340. * String syntax::               Strings
  341. * Number syntax::               Numbers
  342. * Hexadecimal values::          Hexadecimal values
  343. * NULL values::                 @code{NULL} values
  344. * Legal names::                 Database, table, index, column and alias names
  345. Database, Table, Index, Column, and Alias Names
  346. * Name case sensitivity::       Case sensitivity in names
  347. Column Types
  348. * Storage requirements::        Column type storage requirements
  349. * Numeric types::               Numeric types
  350. * Date and time types::         Date and time types
  351. * String types::                String types
  352. * Choosing types::              Choosing the right type for a column
  353. * Indexes::                     Column indexes
  354. * Multiple-column indexes::     Multiple-column indexes
  355. * Other-vendor column types::   Using column types from other database engines
  356. Date and Time Types
  357. * Y2K issues::                  Y2K issues and date types
  358. * DATETIME::                    The @code{DATETIME}, @code{DATE} and @code{TIMESTAMP} types
  359. * TIME::                        The @code{TIME} type
  360. * YEAR::                        The @code{YEAR} type
  361. String Types
  362. * CHAR::                        The @code{CHAR} and @code{VARCHAR} types
  363. * BLOB::                        The @code{BLOB} and @code{TEXT} types
  364. * ENUM::                        The @code{ENUM} type
  365. * SET::                         The @code{SET} type
  366. Functions for Use in @code{SELECT} and @code{WHERE} Clauses
  367. * Grouping functions::          Grouping functions
  368. * Arithmetic functions::        Normal arithmetic operations
  369. * Bit functions::               Bit functions
  370. * Logical functions::           Logical operations
  371. * Comparison functions::        Comparison operators
  372. * String comparison functions::  String comparison functions
  373. * Casts::                       Cast operators
  374. * Control flow functions::      Control flow functions
  375. * Mathematical functions::      Mathematical functions
  376. * String functions::            String functions
  377. * Date and time functions::     Date and time functions
  378. * Miscellaneous functions::     Miscellaneous functions
  379. * Group by functions::          Functions for @code{GROUP BY} clause
  380. @code{CREATE TABLE} Syntax
  381. * Silent column changes::       Silent column changes
  382. @code{INSERT} Syntax
  383. * INSERT SELECT::               
  384. * INSERT DELAYED::              
  385. @code{SHOW} Syntax (Get Information About Tables, Columns,...)
  386. * SHOW DATABASE INFO::          
  387. * SHOW TABLE STATUS::           
  388. * SHOW STATUS::                 
  389. * SHOW VARIABLES::              
  390. * SHOW LOGS::                   
  391. * SHOW PROCESSLIST::            
  392. * SHOW GRANTS::                 
  393. * SHOW CREATE TABLE::           
  394. MySQL Table Types
  395. * MyISAM::                      MyISAM tables
  396. * MERGE::                       MERGE tables
  397. * ISAM::                        ISAM tables
  398. * HEAP::                        HEAP tables
  399. * BDB::                         BDB or Berkeley_db tables
  400. * GEMINI::                      GEMINI tables
  401. * INNOBASE::                    INNOBASE tables
  402. MyISAM Tables
  403. * Key space::                   Space needed for keys
  404. * MyISAM table formats::        MyISAM table formats
  405. MyISAM Table Formats
  406. * Static format::               Static (Fixed-length) table characteristics
  407. * Dynamic format::              Dynamic table characteristics
  408. * Compressed format::           Compressed table characteristics
  409. BDB or Berkeley_db Tables
  410. * BDB overview::                
  411. * BDB install::                 
  412. * BDB start::                   
  413. * BDB characteristic::          
  414. * BDB TODO::                    
  415. * BDB errors::                  
  416. GEMINI Tables
  417. * GEMINI overview::             
  418. * GEMINI start::                
  419. * GEMINI features::             
  420. * GEMINI TODO::                 
  421. INNOBASE Tables
  422. * INNOBASE overview::           
  423. * INNOBASE start::              INNOBASE startup options
  424. * Using INNOBASE tables::       Using INNOBASE tables
  425. * INNOBASE restrictions::       Some restrictions on @code{INNOBASE} tables:
  426. MySQL Tutorial
  427. * Connecting-disconnecting::    Connecting to and disconnecting from the server
  428. * Entering queries::            Entering queries
  429. * Examples::                    Examples
  430. * Searching on two keys::       Searching on two keys
  431. * Database use::                Creating and using a database
  432. * Getting information::         Getting information about databases and tables
  433. * Batch mode::                  Using @code{mysql} in batch mode
  434. * Twin::                        Queries from twin project
  435. Examples of Common Queries
  436. * example-Maximum-column::      The maximum value for a column
  437. * example-Maximum-row::         The row holding the maximum of a certain column
  438. * example-Maximum-column-group::  Maximum of column per group
  439. * example-Maximum-column-group-row::  The rows holding the group-wise maximum of a certain field
  440. * example-user-variables::      Using user variables
  441. * example-Foreign keys::        Using foreign keys
  442. Creating and Using a Database
  443. * Creating database::           Creating a database
  444. * Creating tables::             Creating a table
  445. * Loading tables::              Loading data into a table
  446. * Retrieving data::             Retrieving information from a table
  447. * Multiple tables::             Using more than one table
  448. Retrieving Information from a Table
  449. * Selecting all::               Selecting all data
  450. * Selecting rows::              Selecting particular rows
  451. * Selecting columns::           Selecting particular columns
  452. * Sorting rows::                Sorting rows
  453. * Date calculations::           Date calculations
  454. * Working with NULL::           Working with @code{NULL} values
  455. * Pattern matching::            Pattern matching
  456. * Counting rows::               Counting rows
  457. Queries from Twin Project
  458. * Twin pool::                   Find all non-distributed twins
  459. * Twin event::                  Show a table on twin pair status
  460. MySQL Server Functions
  461. * Languages::                   What languages are supported by @strong{MySQL}?
  462. * Table size::                  How big @strong{MySQL} tables can be
  463. What Languages Are Supported by MySQL?
  464. * Character sets::              The character set used for data and sorting
  465. * Adding character set::        Adding a new character set
  466. * Character arrays::            The character definition arrays
  467. * String collating::            String collating support
  468. * Multi-byte characters::       Multi-byte character support
  469. Replication in MySQL
  470. * Replication Intro::           Introduction
  471. * Replication Implementation::  Replication Implementation Overview
  472. * Replication HOWTO::           HOWTO
  473. * Replication Features::        Replication Features
  474. * Replication Options::         Replication Options in my.cnf
  475. * Replication SQL::             SQL Commands related to replication
  476. * Replication FAQ::             Frequently Asked Questions about replication
  477. * Replication Problems::        Troubleshooting Replication.
  478. Getting Maximum Performance from MySQL
  479. * Optimize Basics::             Optimization overview
  480. * System::                      System/Compile time and startup parameter tuning
  481. * Data size::                   Get your data as small as possible
  482. * MySQL indexes::               How @strong{MySQL} uses indexes
  483. * Query Speed::                 Speed of queries that access or update data
  484. * Tips::                        Other optimization tips
  485. * Benchmarks::                  Using your own benchmarks
  486. * Design::                      Design choices
  487. * Design Limitations::          MySQL design limitations/tradeoffs
  488. * Portability::                 Portability
  489. * Internal use::                What have we used MySQL for?
  490. System/Compile Time and Startup Parameter Tuning
  491. * Compile and link options::    How compiling and linking affects the speed of MySQL
  492. * Disk issues::                 Disk issues
  493. * Server parameters::           Tuning server parameters
  494. * Table cache::                 How MySQL opens and closes tables
  495. * Creating many tables::        Drawbacks of creating large numbers of tables in the same database
  496. * Open tables::                 Why so many open tables?
  497. * Memory use::                  How MySQL uses memory
  498. * Internal locking::            How MySQL locks tables
  499. * Table locking::               Table locking issues
  500. * DNS::                         
  501. Disk Issues
  502. * Symbolic links::              Using symbolic links for databases and tables
  503. Speed of Queries that Access or Update Data
  504. * Estimating performance::      Estimating query performance
  505. * SELECT speed::                Speed of @code{SELECT} queries
  506. * Where optimizations::         How MySQL optimizes @code{WHERE} clauses
  507. * DISTINCT optimization::       How MySQL Optimizes @code{DISTINCT}
  508. * LEFT JOIN optimization::      How MySQL optimizes @code{LEFT JOIN}
  509. * LIMIT optimization::          How MySQL optimizes @code{LIMIT}
  510. * Insert speed::                Speed of @code{INSERT} queries
  511. * Update speed::                Speed of @code{UPDATE} queries
  512. * Delete speed::                Speed of @code{DELETE} queries
  513. MySQL Utilites
  514. * Programs::                    What do the executables do?
  515. * safe_mysqld::                 safe_mysqld, the wrapper around mysqld
  516. * mysqld_multi::                Program for managing multiple @strong{MySQL} servers
  517. * mysql::                       The command line tool
  518. * mysqladmin::                  Administering a @strong{MySQL} server
  519. * mysqldump::                   Dumping the structure and data from @strong{MySQL} databases and tables
  520. * mysqlhotcopy::                Copying @strong{MySQL} Databases and Tables
  521. * mysqlimport::                 Importing data from text files
  522. * perror::                      Displaying error messages
  523. * mysqlshow::                   Showing databases, tables and columns
  524. * myisampack::                  The @strong{MySQL} compressed read-only table generator
  525. Maintaining a MySQL Installation
  526. * Table maintenance::           Table maintenance and crash recovery
  527. * Maintenance regimen::         Setting up a table maintenance regimen
  528. * Table-info::                  Getting information about a table
  529. * Crash recovery::              Using @code{myisamchk} for crash recovery
  530. * Log file maintenance::        Log file maintenance
  531. Using @code{myisamchk} for Table Maintenance and Crash Recovery
  532. * myisamchk syntax::            @code{myisamchk} invocation syntax
  533. * myisamchk memory::            @code{myisamchk} memory usage
  534. @code{myisamchk} Invocation Syntax
  535. * myisamchk general options::   
  536. * myisamchk check options::     
  537. * myisamchk repair options::    
  538. * myisamchk other options::     
  539. Using @code{myisamchk} for Crash Recovery
  540. * Check::                       How to check tables for errors
  541. * Repair::                      How to repair tables
  542. * Optimization::                Table optimization
  543. Adding New Functions to MySQL
  544. * Adding UDF::                  Adding a new user-definable function
  545. * Adding native function::      Adding a new native function
  546. Adding a New User-definable Function
  547. * UDF calling sequences::       UDF calling sequences
  548. * UDF arguments::               Argument processing
  549. * UDF return values::           Return values and error handling
  550. * UDF compiling::               Compiling and installing user-definable functions
  551. Adding New Procedures to MySQL
  552. * procedure analyse::           Procedure analyse
  553. * Writing a procedure::         Writing a procedure.
  554. MySQL ODBC Support
  555. * Installing MyODBC::           How to install MyODBC
  556. * ODBC administrator::          How to fill in the various fields in the ODBC administrator program
  557. * ODBC Problems::               How to report problems with @strong{MySQL} ODBC
  558. * MyODBC clients::              Programs known to work with @strong{MyODBC}
  559. * ODBC and last_insert_id::     How to get the value of an @code{AUTO_INCREMENT} column in ODBC
  560. * MyODBC bug report::           Reporting problems with MyODBC
  561. Using MySQL with Some Common Programs
  562. * Apache::                      Using @strong{MySQL} with Apache
  563. * Borland C++::                 
  564. Problems and Common Errors
  565. * What is crashing::            How to determine what is causing problems
  566. * Crashing::                    What to do if @strong{MySQL} keeps crashing
  567. * Link errors::                 Problems when linking with the @strong{MySQL} client library
  568. * Common errors::               Some common errors when using @strong{MySQL}
  569. * Full disk::                   How @strong{MySQL} handles a full disk
  570. * Multiple sql commands::       How to run SQL commands from a text file
  571. * Temporary files::             Where @strong{MySQL} stores temporary files
  572. * Problems with mysql.sock::    How to protect @file{/tmp/mysql.sock}
  573. * Changing MySQL user::         How to run @strong{MySQL} as a normal user
  574. * Resetting permissions::       How to reset a forgotten password.
  575. * File permissions ::           Problems with file permissions
  576. * Not enough file handles::     File not found
  577. * Using DATE::                  Problems using @code{DATE} columns
  578. * Timezone problems::           Timezone problems
  579. * Case sensitivity::            Case sensitivity in searches
  580. * Problems with NULL::          Problems with @code{NULL} values
  581. * Problems with alias::         Problems with @code{alias}
  582. * Deleting from related tables::  Deleting rows from related tables
  583. * No matching rows::            Solving problems with no matching rows
  584. * ALTER TABLE problems::        Problems with @code{ALTER TABLE}.
  585. * Change column order::         How to change the order of columns in a table
  586. Some Common Errors When Using MySQL
  587. * Error Access denied::         @code{Access denied} Error
  588. * Gone away::                   @code{MySQL server has gone away} error
  589. * Can not connect to server::   @code{Can't connect to [local] MySQL server} error
  590. * Blocked host::                @code{Host '...' is blocked} error
  591. * Too many connections::        @code{Too many connections} error
  592. * Non-transactional tables::    @code{Some non-transactional changed tables couldn't be rolled back} Error
  593. * Out of memory::               @code{Out of memory} error
  594. * Packet too large::            @code{Packet too large} error
  595. * Communication errors::        Communication errors / Aborted connection
  596. * Full table::                  @code{The table is full} error
  597. * Cannot create::               @code{Can't create/write to file} Error
  598. * Commands out of sync::        @code{Commands out of sync} error in client
  599. * Ignoring user::               @code{Ignoring user} error
  600. * Cannot find table::           @code{Table 'xxx' doesn't exist} error
  601. * Cannot initialize character set::  
  602. Solving Some Common Problems with MySQL
  603. * Log Replication::             Database replication with update log
  604. * Backup::                      Database backups
  605. * Multiple servers::            Running multiple @strong{MySQL} servers on the same machine
  606. The MySQL log files
  607. * Error log::                   
  608. * Query log::                   
  609. * Update log::                  
  610. * Binary log::                  
  611. * Slow query log::              
  612. MySQL Client Tools and APIs
  613. * C::                           @strong{MySQL} C API
  614. * C API datatypes::             C API datatypes
  615. * C API function overview::     C API function Overview
  616. * C API functions::             C API function descriptions
  617. * Perl::                        @strong{MySQL} Perl API
  618. * Eiffel::                      @strong{MySQL} Eiffel wrapper
  619. * Java::                        @strong{MySQL} Java connectivity (JDBC)
  620. * PHP::                         @strong{MySQL} PHP API
  621. * Cplusplus::                   @strong{MySQL} C++ APIs
  622. * Python::                      @strong{MySQL} Python APIs
  623. * Tcl::                         @strong{MySQL} Tcl APIs
  624. C API Function Descriptions
  625. * mysql_affected_rows::         @code{mysql_affected_rows()}
  626. * mysql_close::                 @code{mysql_close()}
  627. * mysql_connect::               @code{mysql_connect()}
  628. * mysql_change_user::           @code{mysql_change_user()}
  629. * mysql_character_set_name::    @code{mysql_character_set_name()}
  630. * mysql_create_db::             @code{mysql_create_db()}
  631. * mysql_data_seek::             @code{mysql_data_seek()}
  632. * mysql_debug::                 @code{mysql_debug()}
  633. * mysql_drop_db::               @code{mysql_drop_db()}
  634. * mysql_dump_debug_info::       @code{mysql_dump_debug_info()}
  635. * mysql_eof::                   @code{mysql_eof()}
  636. * mysql_errno::                 @code{mysql_errno()}
  637. * mysql_error::                 @code{mysql_error()}
  638. * mysql_escape_string::         @code{mysql_escape_string()}
  639. * mysql_fetch_field::           @code{mysql_fetch_field()}
  640. * mysql_fetch_fields::          @code{mysql_fetch_fields()}
  641. * mysql_fetch_field_direct::    @code{mysql_fetch_field_direct()}
  642. * mysql_fetch_lengths::         @code{mysql_fetch_lengths()}
  643. * mysql_fetch_row::             @code{mysql_fetch_row()}
  644. * mysql_field_count::           @code{mysql_field_count()}
  645. * mysql_field_seek::            @code{mysql_field_seek()}
  646. * mysql_field_tell::            @code{mysql_field_tell()}
  647. * mysql_free_result::           @code{mysql_free_result()}
  648. * mysql_get_client_info::       @code{mysql_get_client_info()}
  649. * mysql_get_host_info::         @code{mysql_get_host_info()}
  650. * mysql_get_proto_info::        @code{mysql_get_proto_info()}
  651. * mysql_get_server_info::       @code{mysql_get_server_info()}
  652. * mysql_info::                  @code{mysql_info()}
  653. * mysql_init::                  @code{mysql_init()}
  654. * mysql_insert_id::             @code{mysql_insert_id()}
  655. * mysql_kill::                  @code{mysql_kill()}
  656. * mysql_list_dbs::              @code{mysql_list_dbs()}
  657. * mysql_list_fields::           @code{mysql_list_fields()}
  658. * mysql_list_processes::        @code{mysql_list_processes()}
  659. * mysql_list_tables::           @code{mysql_list_tables()}
  660. * mysql_num_fields::            @code{mysql_num_fields()}
  661. * mysql_num_rows::              @code{mysql_num_rows()}
  662. * mysql_options::               @code{mysql_options()}
  663. * mysql_ping::                  @code{mysql_ping()}
  664. * mysql_query::                 @code{mysql_query()}
  665. * mysql_real_connect::          @code{mysql_real_connect()}
  666. * mysql_real_escape_string::    @code{mysql_real_escape_string()}
  667. * mysql_real_query::            @code{mysql_real_query()}
  668. * mysql_reload::                @code{mysql_reload()}
  669. * mysql_row_seek::              @code{mysql_row_seek()}
  670. * mysql_row_tell::              @code{mysql_row_tell()}
  671. * mysql_select_db::             @code{mysql_select_db()}
  672. * mysql_shutdown::              @code{mysql_shutdown()}
  673. * mysql_stat::                  @code{mysql_stat()}
  674. * mysql_store_result::          @code{mysql_store_result()}
  675. * mysql_thread_id::             @code{mysql_thread_id()}
  676. * mysql_use_result::            @code{mysql_use_result()}
  677. * NULL mysql_store_result::     Why is it that after @code{mysql_query()} returns success, @code{mysql_store_result()} sometimes returns @code{NULL?}
  678. * Query results::               What results can I get from a query?
  679. * Getting unique ID::           How can I get the unique ID for the last inserted row?
  680. * C API linking problems::      Problems linking with the C API
  681. * Thread-safe clients::         How to make a thread-safe client
  682. MySQL Perl API
  683. * DBI with DBD::                @code{DBI} with @code{DBD::mysql}
  684. * Perl DBI Class::              The @code{DBI} interface
  685. * DBI-info::                    More @code{DBI}/@code{DBD} information
  686. MySQL PHP API
  687. * PHP problems::                Common problems with MySQL and PHP
  688. How MySQL Compares to Other Databases
  689. * Compare mSQL::                How @strong{MySQL} compares to @code{mSQL}
  690. * Compare PostgreSQL::          How @strong{MySQL} compares with PostgreSQL
  691. How MySQL Compares to @code{mSQL}
  692. * Using mSQL tools::            How to convert @code{mSQL} tools for @strong{MySQL}
  693. * Protocol differences::        How @code{mSQL} and @strong{MySQL} client/server communications protocols differ
  694. * Syntax differences::          How @code{mSQL} 2.0 SQL syntax differs from @strong{MySQL}
  695. MySQL Internals
  696. * MySQL threads::               MySQL threads
  697. * MySQL full-text search::      MySQL full-text search
  698. * MySQL test suite::            MySQL test suite
  699. MySQL Full-text Search
  700. * Fulltext Fine-tuning::        
  701. * Fulltext features to appear in MySQL 4.0::  
  702. * Fulltext TODO::               
  703. Credits
  704. * Developers::                  
  705. * Contributors::                
  706. * Supporters::                  
  707. MySQL change history
  708. * News-4.0.x::                  Changes in release 4.0.x (Development; Alpha)
  709. * News-3.23.x::                 Changes in release 3.23.x (Stable)
  710. * News-3.22.x::                 Changes in release 3.22.x (Older; Still supported)
  711. * News-3.21.x::                 Changes in release 3.21.x
  712. * News-3.20.x::                 Changes in release 3.20.x
  713. * News-3.19.x::                 Changes in release 3.19.x
  714. Changes in release 4.0.x (Development; Alpha)
  715. * News-4.0.0::                  Changes in release 4.0.0
  716. Changes in release 3.23.x  (Stable)
  717. * News-3.23.35::                Changes in release 3.23.35
  718. * News-3.23.34a::               Changes in release 3.23.34a
  719. * News-3.23.34::                Changes in release 3.23.34
  720. * News-3.23.33::                Changes in release 3.23.33
  721. * News-3.23.32::                Changes in release 3.23.32
  722. * News-3.23.31::                Changes in release 3.23.31
  723. * News-3.23.30::                Changes in release 3.23.30
  724. * News-3.23.29::                Changes in release 3.23.29
  725. * News-3.23.28::                Changes in release 3.23.28
  726. * News-3.23.27::                Changes in release 3.23.27
  727. * News-3.23.26::                Changes in release 3.23.26
  728. * News-3.23.25::                Changes in release 3.23.25
  729. * News-3.23.24::                Changes in release 3.23.24
  730. * News-3.23.23::                Changes in release 3.23.23
  731. * News-3.23.22::                Changes in release 3.23.22
  732. * News-3.23.21::                Changes in release 3.23.21
  733. * News-3.23.20::                Changes in release 3.23.20
  734. * News-3.23.19::                Changes in release 3.23.19
  735. * News-3.23.18::                Changes in release 3.23.18
  736. * News-3.23.17::                Changes in release 3.23.17
  737. * News-3.23.16::                Changes in release 3.23.16
  738. * News-3.23.15::                Changes in release 3.23.15
  739. * News-3.23.14::                Changes in release 3.23.14
  740. * News-3.23.13::                Changes in release 3.23.13
  741. * News-3.23.12::                Changes in release 3.23.12
  742. * News-3.23.11::                Changes in release 3.23.11
  743. * News-3.23.10::                Changes in release 3.23.10
  744. * News-3.23.9::                 Changes in release 3.23.9
  745. * News-3.23.8::                 Changes in release 3.23.8
  746. * News-3.23.7::                 Changes in release 3.23.7
  747. * News-3.23.6::                 Changes in release 3.23.6
  748. * News-3.23.5::                 Changes in release 3.23.5
  749. * News-3.23.4::                 Changes in release 3.23.4
  750. * News-3.23.3::                 Changes in release 3.23.3
  751. * News-3.23.2::                 Changes in release 3.23.2
  752. * News-3.23.1::                 Changes in release 3.23.1
  753. * News-3.23.0::                 Changes in release 3.23.0
  754. Changes in release 3.22.x (Older; Still supported)
  755. * News-3.22.35::                Changes in release 3.22.35
  756. * News-3.22.34::                Changes in release 3.22.34
  757. * News-3.22.33::                Changes in release 3.22.33
  758. * News-3.22.32::                Changes in release 3.22.32
  759. * News-3.22.31::                Changes in release 3.22.31
  760. * News-3.22.30::                Changes in release 3.22.30
  761. * News-3.22.29::                Changes in release 3.22.29
  762. * News-3.22.28::                Changes in release 3.22.28
  763. * News-3.22.27::                Changes in release 3.22.27
  764. * News-3.22.26::                Changes in release 3.22.26
  765. * News-3.22.25::                Changes in release 3.22.25
  766. * News-3.22.24::                Changes in release 3.22.24
  767. * News-3.22.23::                Changes in release 3.22.23
  768. * News-3.22.22::                Changes in release 3.22.22
  769. * News-3.22.21::                Changes in release 3.22.21
  770. * News-3.22.20::                Changes in release 3.22.20
  771. * News-3.22.19::                Changes in release 3.22.19
  772. * News-3.22.18::                Changes in release 3.22.18
  773. * News-3.22.17::                Changes in release 3.22.17
  774. * News-3.22.16::                Changes in release 3.22.16
  775. * News-3.22.15::                Changes in release 3.22.15
  776. * News-3.22.14::                Changes in release 3.22.14
  777. * News-3.22.13::                Changes in release 3.22.13
  778. * News-3.22.12::                Changes in release 3.22.12
  779. * News-3.22.11::                Changes in release 3.22.11
  780. * News-3.22.10::                Changes in release 3.22.10
  781. * News-3.22.9::                 Changes in release 3.22.9
  782. * News-3.22.8::                 Changes in release 3.22.8
  783. * News-3.22.7::                 Changes in release 3.22.7
  784. * News-3.22.6::                 Changes in release 3.22.6
  785. * News-3.22.5::                 Changes in release 3.22.5
  786. * News-3.22.4::                 Changes in release 3.22.4
  787. * News-3.22.3::                 Changes in release 3.22.3
  788. * News-3.22.2::                 Changes in release 3.22.2
  789. * News-3.22.1::                 Changes in release 3.22.1
  790. * News-3.22.0::                 Changes in release 3.22.0
  791. Changes in release 3.21.x
  792. * News-3.21.33::                Changes in release 3.21.33
  793. * News-3.21.32::                Changes in release 3.21.32
  794. * News-3.21.31::                Changes in release 3.21.31
  795. * News-3.21.30::                Changes in release 3.21.30
  796. * News-3.21.29::                Changes in release 3.21.29
  797. * News-3.21.28::                Changes in release 3.21.28
  798. * News-3.21.27::                Changes in release 3.21.27
  799. * News-3.21.26::                Changes in release 3.21.26
  800. * News-3.21.25::                Changes in release 3.21.25
  801. * News-3.21.24::                Changes in release 3.21.24
  802. * News-3.21.23::                Changes in release 3.21.23
  803. * News-3.21.22::                Changes in release 3.21.22
  804. * News-3.21.21a::               Changes in release 3.21.21a
  805. * News-3.21.21::                Changes in release 3.21.21
  806. * News-3.21.20::                Changes in release 3.21.20
  807. * News-3.21.19::                Changes in release 3.21.19
  808. * News-3.21.18::                Changes in release 3.21.18
  809. * News-3.21.17::                Changes in release 3.21.17
  810. * News-3.21.16::                Changes in release 3.21.16
  811. * News-3.21.15::                Changes in release 3.21.15
  812. * News-3.21.14b::               Changes in release 3.21.14b
  813. * News-3.21.14a::               Changes in release 3.21.14a
  814. * News-3.21.13::                Changes in release 3.21.13
  815. * News-3.21.12::                Changes in release 3.21.12
  816. * News-3.21.11::                Changes in release 3.21.11
  817. * News-3.21.10::                Changes in release 3.21.10
  818. * News-3.21.9::                 Changes in release 3.21.9
  819. * News-3.21.8::                 Changes in release 3.21.8
  820. * News-3.21.7::                 Changes in release 3.21.7
  821. * News-3.21.6::                 Changes in release 3.21.6
  822. * News-3.21.5::                 Changes in release 3.21.5
  823. * News-3.21.4::                 Changes in release 3.21.4
  824. * News-3.21.3::                 Changes in release 3.21.3
  825. * News-3.21.2::                 Changes in release 3.21.2
  826. * News-3.21.0::                 Changes in release 3.21.0
  827. Changes in release 3.20.x
  828. * News-3.20.18::                Changes in release 3.20.18
  829. * News-3.20.17::                Changes in release 3.20.17
  830. * News-3.20.16::                Changes in release 3.20.16
  831. * News-3.20.15::                Changes in release 3.20.15
  832. * News-3.20.14::                Changes in release 3.20.14
  833. * News-3.20.13::                Changes in release 3.20.13
  834. * News-3.20.11::                Changes in release 3.20.11
  835. * News-3.20.10::                Changes in release 3.20.10
  836. * News-3.20.9::                 Changes in release 3.20.9
  837. * News-3.20.8::                 Changes in release 3.20.8
  838. * News-3.20.7::                 Changes in release 3.20.7
  839. * News-3.20.6::                 Changes in release 3.20.6
  840. * News-3.20.3::                 Changes in release 3.20.3
  841. * News-3.20.0::                 Changes in releases 3.20.0
  842. Changes in release 3.19.x
  843. * News-3.19.5::                 Changes in release 3.19.5
  844. * News-3.19.4::                 Changes in release 3.19.4
  845. * News-3.19.3::                 Changes in release 3.19.3
  846. MySQL and the future (The TODO)
  847. * TODO MySQL 4.0::              Things that should be in Version 4.0
  848. * TODO future::                 Things that must be done in the near future
  849. * TODO sometime::               Things that have to be done sometime
  850. * TODO unplanned::              Some things we don't have any plans to do
  851. Comments on porting to other systems
  852. * Debugging server::            Debugging a @strong{MySQL} server
  853. * Debugging client::            Debugging a @strong{MySQL} client
  854. * The DBUG package::            The DBUG package
  855. * Locking methods::             Locking methods
  856. * RTS-threads::                 Comments about RTS threads
  857. * Thread packages::             Differences between different thread packages
  858. Debugging a MySQL server
  859. * Compiling for debugging::     
  860. * Making trace files::          
  861. * Using stack trace::           
  862. * Using log files::             
  863. * Reproducable test case::      
  864. @end detailmenu
  865. @end menu
  866. @cindex overview
  867. @cindex general information
  868. @cindex online location of manual
  869. @cindex manual, online location
  870. @node Introduction, Questions, Top, Top
  871. @chapter General Information About MySQL
  872. @menu
  873. * What-is::                     What is @strong{MySQL}?
  874. * What is MySQL AB::            
  875. * Manual-info::                 About this manual
  876. * History::                     History of @strong{MySQL}
  877. * MySQL-Books::                 Books about MySQL
  878. * Features::                    The main features of @strong{MySQL}
  879. * Stability::                   How stable is @strong{MySQL}?
  880. * Year 2000 compliance::        Year 2000 compliance
  881. * General-SQL::                 General SQL information and tutorials
  882. * Useful Links::                Useful @strong{MySQL}-related links
  883. @end menu
  884. This is the @strong{MySQL} reference manual; it documents @strong{MySQL}
  885. Version @value{mysql_version}. As @strong{MySQL} is work in progress,
  886. the manual gets updated frequently. There is a very good chance that
  887. this version is out of date, unless you are looking at it online. The
  888. most recent version of this manual is available at
  889. @uref{http://www.mysql.com/documentation/} in many different formats. If you
  890. have a hard time finding information in the manual, you can try the
  891. searchable PHP version at @uref{http://www.mysql.com/documentation/manual.php}.
  892. @strong{MySQL} is a very fast, multi-threaded, multi-user, and robust SQL
  893. (Structured Query Language) database server.
  894. @strong{MySQL} is free software. It is licensed with the @strong{GNU
  895. GENERAL PUBLIC LICENSE} @uref{http://www.gnu.org/}.
  896.  @xref{Licensing and Support}.
  897. @uref{http://www.mysql.com/, The @strong{MySQL} home page}
  898. provides the latest information about @strong{MySQL}.
  899. The following list describes some useful sections of the manual:
  900. @itemize @bullet
  901. @item
  902. To get information about the company behind MySQL, see @xref{What is MySQL AB}.
  903. @item
  904. For a discussion of @strong{MySQL}'s capabilities, see @ref{Features}.
  905. @item
  906. For installation instructions, see @ref{Installing}.
  907. @item
  908. For tips on porting @strong{MySQL} to new architectures or operating
  909. systems, see @ref{Porting}.
  910. @item
  911. For information about upgrading from a Version 3.21 release, see
  912. @ref{Upgrading-from-3.21}.
  913. @item
  914. For a tutorial introduction to @strong{MySQL}, see
  915. @ref{Tutorial}.
  916. @item
  917. For examples of SQL and benchmarking information, see the benchmarking
  918. directory (@file{sql-bench} in the distribution).
  919. @item
  920. For a history of new features and bug fixes, see @ref{News}.
  921. @item
  922. For a list of currently known bugs and misfeatures, see @ref{Bugs}.
  923. @item
  924. For future plans, see @ref{TODO}.
  925. @item
  926. For a list of all the contributors to this project, see @ref{Credits}.
  927. @end itemize
  928. @strong{IMPORTANT:}
  929. Reports of errors (often called bugs), as well as questions and comments,
  930. should be sent to the mailing list at @email{mysql@@lists.mysql.com}.
  931. @xref{Bug reports}.
  932. The @code{mysqlbug} script should be used to generate bug reports.
  933. @c FIX! RPMs are also binary
  934. For source distributions, the @code{mysqlbug} script can be found in the
  935. @file{scripts} directory.  For binary distributions, @code{mysqlbug} can
  936. be found in the @file{bin} directory. If you have found a sensitive
  937. security bug in @strong{MySQL}, you should send an email to
  938. @email{security@@mysql.com}.
  939. @cindex errors, reporting
  940. @cindex reporting, errors
  941. @cindex mailing list address
  942. @cindex @code{mysqlbug} script, location
  943. If you have any suggestions concerning additions or corrections to this
  944. manual, please send them to the manual team at
  945. (@email{docs@@mysql.com}).
  946. This is a reference manual; it does not provide general instruction on SQL
  947. or relational database concepts.  If you want general information about SQL,
  948. see @ref{General-SQL}. For books that focus more specifically on
  949. @strong{MySQL}, see @ref{MySQL-Books}.
  950. @cindex MySQL, defined
  951. @cindex MySQL, introduction
  952. @node What-is, What is MySQL AB, Introduction, Introduction
  953. @section What Is MySQL
  954. @strong{MySQL}, the most popular Open Source SQL database, is provided
  955. by @strong{MySQL AB}.  @strong{MySQL AB} is a commercial company that
  956. builds its business providing services around the @strong{MySQL} database.
  957. @xref{What is MySQL AB}.
  958. @table @asis
  959. @item @strong{MySQL} is a database management system.
  960. A database is a structured collection of data. It may be anything from a
  961. simple shopping list to a picture gallery or the vast amounts of
  962. information in a corporate network. To add, access, and process data
  963. stored in a computer database, you need a database management system
  964. such as @strong{MySQL}. Since computers are very good at handling large
  965. amounts of data, database management plays a central role in computing,
  966. as stand-alone utilities, or as parts of other applications.
  967. @cindex databases, defined
  968. @item @strong{MySQL} is a relational database management system.
  969. A relational database stores data in separate tables rather than putting
  970. all the data in one big storeroom. This adds speed and flexibility. The
  971. tables are linked by defined relations making it possible to combine
  972. data from several tables on request. The SQL part of @strong{MySQL}
  973. stands for "Structured Query Language" - the most common standardized
  974. language used to access databases.
  975. @cindex relational databases, defined
  976. @cindex SQL, defined
  977. @item @strong{MySQL} is Open Source Software.
  978. Open source means that it is possible for anyone to use and modify.
  979. Anybody can download @strong{MySQL} from the Internet and use it
  980. without paying anything. Anybody so inclined can study the source code
  981. and change it to fit their needs. @strong{MySQL} uses the GPL (GNU
  982. General Public License) @uref{http://www.gnu.org}, to define what you
  983. may and may not do with the software in different situations. If you
  984. feel uncomfortable with the GPL or need to embed @strong{MySQL} into a
  985. commercial application you can buy a commercially licensed version from
  986. us.
  987. @cindex open source, defined
  988. @cindex General Public License
  989. @item Why use @strong{MySQL}?
  990. @strong{MySQL} is very fast, reliable, and easy to use. If that is what
  991. you are looking for, you should give it a try. @strong{MySQL} also has a
  992. very practical set of features developed in very close cooperation with
  993. our users. You can find a performance comparison of @strong{MySQL}
  994. to some other database managers on our benchmark page. @xref{Benchmarks}.
  995. @strong{MySQL} was originally developed to handle very large databases
  996. much faster than existing solutions and has been successfully used in
  997. highly demanding production environments for several years.  Though
  998. under constant development, @strong{MySQL} today offers a rich and very
  999. useful set of functions. The connectivity, speed, and security make
  1000. @strong{MySQL} highly suited for accessing databases on the Internet.
  1001. @item The technical features of @strong{MySQL}
  1002. For advanced technical information, see @ref{Reference}.  @strong{MySQL} is
  1003. a client/server system that consists of a multi-threaded SQL server
  1004. that supports different backends, several different client programs and
  1005. libraries, administrative tools, and a programming interface.
  1006. We also provide @strong{MySQL} as a multi-threaded library which you can
  1007. link into your application to get a smaller, faster, easier to manage
  1008. product.
  1009. @item @strong{MySQL} has a lot of contributed software available.
  1010. It is very likely that you will find that your favorite
  1011. application/language already supports @strong{MySQL}.
  1012. @end table
  1013. @cindex pronounciation, MySQL
  1014. @cindex MySQL, pronouniation
  1015. @cindex goals of MySQL
  1016. The official way to pronounce @strong{MySQL} is ``My Ess Que Ell'' (not
  1017. MY-SEQUEL). But we try to avoid correcting people who say MY-SEQUEL.
  1018. @cindex MySQL AB, defined
  1019. @node What is MySQL AB, Manual-info, What-is, Introduction
  1020. @section What Is MySQL AB
  1021. @strong{MySQL AB} is the Swedish company owned and run by the @strong{MySQL}
  1022. founders and main developers. We are dedicated to developing
  1023. @strong{MySQL} and spreading our database to new users. @strong{MySQL AB}
  1024. owns the copyright to the @strong{MySQL} server source code and the
  1025. @strong{MySQL} trademark.  A significant amount of revenues from our
  1026. services goes to developing @strong{MySQL}. @xref{What-is}.
  1027. @strong{MySQL AB} has been profitable providing @strong{MySQL AB} from the start.
  1028. We don't get any outside funding, but have earned all our money ourselves.
  1029. We are searching after partners that would like to support our
  1030. development of @strong{MySQL} so that we could accelerate the
  1031. development pace.  If you are interested in doing this, you can email
  1032. @email{partner@@mysql.com} about this!
  1033. @strong{MYSQL AB} has currently 20+ people on it's payroll and is
  1034. growing rapidly.  @uref{http://www.mysql.com/development/team.html}.
  1035. Our main streams of income are
  1036. @itemize @bullet
  1037. @item
  1038. Commercial high quality support for @strong{MySQL} provided by
  1039. @strong{MySQL} developers.  If you are interested in getting support,
  1040. please visit @uref{https://order.mysql.com/} to view our support options
  1041. or to order support.
  1042. @item
  1043. Consulting services.  We have developers/consults in 12 countries and
  1044. partners in many other countries that can help you with almost any
  1045. @strong{MySQL} related issues.  If you need consulting services, please
  1046. email a good description of your needs to @email{info@@mysql.com}!  If we
  1047. can't handle this ourselves we can usually find a partner or a developer
  1048. that can help you with your problems.
  1049. @item
  1050. We sell licenses for using @strong{MySQL} as an embedded
  1051. database. @xref{Cost}.  If you have a commercial product for which you
  1052. need a fast high quality database but you can't afford to make your
  1053. product Open Source, you can buy the right to use the @strong{MySQL} server
  1054. under a normal commercial copyright.  If you are interested in this you can
  1055. buy @strong{MySQL} licenses at @uref{https://order.mysql.com/} or contact
  1056. us at @email{licensing@@mysql.com}.
  1057. @item
  1058. Advertising; @uref{http://www.mysql.com/} is a very popular web site with
  1059. more than 10,000,000 page views per months (January 2001).  By putting a
  1060. banner on this you are guaranteed to reach a lot of potential customers
  1061. in the Open source, Linux and database community. If you are interested
  1062. in this email @email{advertising@@mysql.com}.
  1063. @item
  1064. We are building a partner program to be able to provide @strong{MySQL}
  1065. services in every country.  If you are interested in becomming a partner
  1066. of @strong{MySQL AB} please visit
  1067. @uref{http://www.mysql.com/information/partners.html} or email
  1068. @email{partner@@mysql.com}.
  1069. @item
  1070. We provide @strong{MySQL} training through our partner programs. For more
  1071. information, please email @email{info@@mysql.com}.
  1072. @item
  1073. The @strong{MySQL} brand has since 1995 been associated with speed,
  1074. reliability and is known to be something you can depend upon. If you are
  1075. interested in using the @strong{MySQL} trademark in your marketing, you
  1076. can email @email{info@@mysql.com} about this.
  1077. @end itemize
  1078. The @strong{MySQL} core values shows our dedication to @strong{MySQL} and
  1079. Open Source:
  1080. We want @strong{MySQL} to be:
  1081. @itemize @bullet
  1082. @item
  1083. The best and the most used database in the world
  1084. @item
  1085. Available and affordable for all
  1086. @item
  1087. Easy to use
  1088. @item
  1089. Continuously improving while remaining fast and safe
  1090. @item
  1091. Fun to use and improve
  1092. @item
  1093. Free from bugs
  1094. @end itemize
  1095. @strong{MySQL AB} and the people of @strong{MySQL AB}:
  1096. @itemize @bullet
  1097. @item
  1098. Promote Open Source Philosophy and support the Open Source Community
  1099. @item
  1100. Aim to be good citizens
  1101. @item
  1102. Prefer partners that share our values and mind-set
  1103. @item
  1104. Answer mail and give support
  1105. @item
  1106. Are a virtual company, networking with others
  1107. @item
  1108. Work against software patents
  1109. @end itemize
  1110. @node Manual-info, History, What is MySQL AB, Introduction
  1111. @section About This Manual
  1112. @menu
  1113. * Manual conventions::          Conventions used in this manual
  1114. @end menu
  1115. This manual is currently available in Texinfo, plain text, Info, HTML,
  1116. PostScript, and PDF versions.  The primary document is the Texinfo file.
  1117. The HTML version is produced automatically using a modified version of
  1118. @code{texi2html}. The plain text and Info versions are produced with
  1119. @code{makeinfo}. The Postscript version is produced using @code{texi2dvi}
  1120. and @code{dvips}. The PDF version is produced with @code{pdftex}.
  1121. @cindex manual, available formats
  1122. @cindex Texinfo
  1123. This manual is written and maintained by David Axmark, Michael (Monty)
  1124. Widenius, Jeremy Cole, and Paul DuBois. For other contributors,
  1125. see @ref{Credits}.
  1126. @node Manual conventions,  , Manual-info, Manual-info
  1127. @subsection Conventions Used in This Manual
  1128. This manual uses certain typographical conventions:
  1129. @cindex manual, typographical conventions
  1130. @cindex typographical conventions
  1131. @table @asis
  1132. @item @code{constant}
  1133. Constant-width font is used for command names and options; SQL statements;
  1134. database, table and column names; C and Perl code; and environment variables.
  1135. Example: ``To see how @code{mysqladmin} works, invoke it with the
  1136. @code{--help} option.''
  1137. @item @file{filename}
  1138. Constant-width font with surrounding quotes is used for filenames and
  1139. pathnames.  Example: ``The distribution is installed under the
  1140. @file{/usr/local/} directory.''
  1141. @item @samp{c}
  1142. Constant-width font with surrounding quotes is also used to indicate
  1143. character sequences.  Example: ``To specify a wild card, use the @samp{%}
  1144. character.''
  1145. @item @emph{italic}
  1146. Italic font is used for emphasis, @emph{like this}.
  1147. @item @strong{boldface}
  1148. Boldface font is used for access privilege names (for example, ``do not grant
  1149. the @strong{process} privilege lightly'') and occasionally to convey
  1150. @strong{especially strong emphasis}.
  1151. @end table
  1152. When commands are shown that are meant to be executed by a particular
  1153. program, the program is indicated by a prompt shown before the command.  For
  1154. example, @code{shell>} indicates a command that you execute from your login
  1155. shell, and @code{mysql>} indicates a command that you execute from the
  1156. @code{mysql} client program:
  1157. @example
  1158. shell> type a shell command here
  1159. mysql> type a mysql command here
  1160. @end example
  1161. Shell commands are shown using Bourne shell syntax.  If you are using a
  1162. @code{csh}-style shell, you may need to issue commands slightly differently.
  1163. For example, the sequence to set an environment variable and run a command
  1164. looks like this in Bourne shell syntax:
  1165. @example
  1166. shell> VARNAME=value some_command
  1167. @end example
  1168. @cindex shell syntax
  1169. @cindex command syntax
  1170. For @code{csh}, you would execute the sequence like this:
  1171. @example
  1172. shell> setenv VARNAME value
  1173. shell> some_command
  1174. @end example
  1175. Often, database, table, and column names must be substituted into commands.  To
  1176. indicate that such substitution is necessary, this manual uses
  1177. @code{db_name}, @code{tbl_name} and @code{col_name}.  For example, you might
  1178. see a statement like this:
  1179. @example
  1180. mysql> SELECT col_name FROM db_name.tbl_name;
  1181. @end example
  1182. This means that if you were to enter a similar statement, you would supply
  1183. your own database, table, and column names, perhaps like this:
  1184. @example
  1185. mysql> SELECT author_name FROM biblio_db.author_list;
  1186. @end example
  1187. SQL statements may be written in uppercase or lowercase.  When this manual
  1188. shows a SQL statement, uppercase is used for particular keywords if those
  1189. keywords are under discussion (to emphasize them) and lowercase is used for
  1190. the rest of the statement.  For example, you might see the following in a
  1191. discussion of the @code{SELECT} statement:
  1192. @example
  1193. mysql> SELECT count(*) FROM tbl_name;
  1194. @end example
  1195. On the other hand, in a discussion of the @code{COUNT()} function, the
  1196. same statement would be written like this:
  1197. @example
  1198. mysql> select COUNT(*) from tbl_name;
  1199. @end example
  1200. If no particular emphasis is intended, all keywords are written uniformly
  1201. in uppercase.
  1202. In syntax descriptions, square brackets (@samp{[} and @samp{]}) are used
  1203. to indicate optional words or clauses:
  1204. @example
  1205. DROP TABLE [IF EXISTS] tbl_name
  1206. @end example
  1207. When a syntax element consists of a number of alternatives, the alternatives
  1208. are separated by vertical bars (@samp{|}).  When one member from a set of
  1209. choices @strong{may} be chosen, the alternatives are listed within square
  1210. brackets (@samp{[} and @samp{]}):
  1211. @example
  1212. TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
  1213. @end example
  1214. When one member from a set of choices @strong{must} be chosen, the
  1215. alternatives are listed within braces (@samp{@{} and @samp{@}}):
  1216. @example
  1217. @{DESCRIBE | DESC@} tbl_name @{col_name | wild@}
  1218. @end example
  1219. @cindex MySQL version
  1220. @cindex MySQL history
  1221. @cindex history of MySQL
  1222. @node History, MySQL-Books, Manual-info, Introduction
  1223. @section History of MySQL
  1224. We once started out with the intention of using @code{mSQL} to connect to our
  1225. tables using our own fast low-level (ISAM) routines. However, after some
  1226. testing we came to the conclusion that @code{mSQL} was not fast enough nor
  1227. flexible enough for our needs. This resulted in a new SQL interface to our
  1228. database but with almost the same API interface as @code{mSQL}. This API was
  1229. chosen to ease porting of third-party code.
  1230. The derivation of the name @strong{MySQL} is not perfectly clear.  Our base
  1231. directory and a large number of our libraries and tools have had the prefix
  1232. ``my'' for well over 10 years. However, Monty's daughter (some years younger)
  1233. is also named My. So which of the two gave its name to @strong{MySQL} is
  1234. still a mystery, even for us.
  1235. @node MySQL-Books, Features, History, Introduction
  1236. @section Books About MySQL
  1237. @cindex books, about MySQL
  1238. @cindex manuals, about MySQL
  1239. While this manual is still the right place for up to date techical
  1240. information, its primary goal is to contain everything there is to know
  1241. about @strong{MySQL}. It is sometimes nice to have a bound book to read
  1242. in bed or while you travel. Here is a list of books about @strong{MySQL} and
  1243. related subjects (in English).
  1244. By purchasing a book through these hyperlinks provided herein, you are
  1245. contributing to the development of @strong{MySQL}.
  1246. @emph{MySQL}
  1247. @multitable @columnfractions .3 .7
  1248. @item Available @tab
  1249. @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0735709211&bfmtype=book, Barnes and Noble}
  1250. @item Publisher @tab New Riders
  1251. @item Author @tab Paul DuBois
  1252. @item Pub Date @tab 1st Edition December 1999
  1253. @item ISBN @tab 0735709211
  1254. @item Pages @tab 800
  1255. @item Price @tab $49.99 US
  1256. @item Downloadable examples  @tab
  1257.  @uref{http://www.mysql.com/Downloads/Contrib/Examples/samp_db.tar.gz, @code{samp_db.tar.gz}}
  1258. @item Errata  @tab
  1259.  @uref{http://www.mysql.com/documentation/pauls-mysql-book-errata.html, are available here}
  1260. @end multitable
  1261. Foreword by Michael ``Monty'' Widenius, @strong{MySQL} Moderator.@*
  1262. In @emph{MySQL}, Paul DuBois provides you with a comprehensive guide to
  1263. one of the most popular relational database systems. Paul has
  1264. contributed to the online documentation for @strong{MySQL} and is an
  1265. active member of the @strong{MySQL} community. The principal @strong{MySQL}
  1266. developer, Monty Widenius, and a network of his fellow developers
  1267. reviewed the manuscript, and provided Paul with the kind of insight
  1268. no one else could supply.@*
  1269. Instead of merely giving you a general overview of @strong{MySQL}, Paul
  1270. teaches you how to make the most of its capabilities. Through two
  1271. sample database applications that run throughout the book, he
  1272. gives you solutions to problems you're sure to face. He helps you
  1273. integrate @strong{MySQL} efficiently with third-party tools, such as PHP
  1274. and Perl, enabling you to generate dynamic Web pages through
  1275. database queries. He teaches you to write programs that access
  1276. @strong{MySQL} databases, and also provides a comprehensive set of
  1277. references to column types, operators, functions, SQL syntax,
  1278. @strong{MySQL} programming, C API, Perl @code{DBI}, and PHP API.
  1279. @emph{MySQL} simply gives you the kind of information you won't find
  1280. anywhere else.@*
  1281. If you use @strong{MySQL}, this book provides you with:
  1282. @itemize @bullet
  1283. @item
  1284. An introduction to @strong{MySQL} and SQL
  1285. @item
  1286. Coverage of @strong{MySQL}'s data types and how to use them
  1287. @item
  1288. Thorough treatment of how to write client programs in C
  1289. @item
  1290. A guide to using the Perl @code{DBI} and PHP APIs for developing
  1291. command-line and Web-based applications
  1292. @item
  1293. Tips on administrative issues such as user accounts, backup,
  1294. crash recovery, and security
  1295. @item
  1296. Help in choosing an ISP for @strong{MySQL} access
  1297. @item
  1298. A comprehensive reference for @strong{MySQL}'s data types, operators,
  1299. functions, and SQL statements and utilities
  1300. @item
  1301. Complete reference guides for @strong{MySQL}'s C API, the Perl @code{DBI} API,
  1302. and PHP's @strong{MySQL}-related functions
  1303. @end itemize
  1304. @*
  1305. @emph{MySQL & mSQL}
  1306. @multitable @columnfractions .3 .7
  1307. @item Available @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1565924347&bfmtype=book, Barnes and Noble}
  1308. @item Publisher @tab O'Reilly
  1309. @item Authors @tab Randy Jay Yarger, George Reese & Tim King
  1310. @item Pub Date @tab 1st Edition July 1999
  1311. @item ISBN @tab 1-56592-434-7, Order Number: 4347
  1312. @item Pages @tab 506
  1313. @item Price @tab $34.95
  1314. @end multitable
  1315. This book teaches you how to use @strong{MySQL} and @code{mSQL}, two popular
  1316. and robust database products that support key subsets of SQL on both Linux
  1317. and Unix systems. Anyone who knows basic C, Java, Perl, or Python can
  1318. write a program to interact with a database, either as a stand-alone
  1319. application or through a Web page. This book takes you through the
  1320. whole process, from installation and configuration to programming
  1321. interfaces and basic administration.  Includes ample tutorial
  1322. material.
  1323. @*
  1324. @emph{Sams' Teach Yourself MySQL in 21 Days}
  1325. @multitable @columnfractions .3 .7
  1326. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0672319144&bfmtype=book, Barnes and Noble}
  1327. @item Publisher @tab            Sams
  1328. @item Authors   @tab            Mark Maslakowski and Tony Butcher
  1329. @item Pub Date  @tab            June 2000
  1330. @item ISBN      @tab            0672319144
  1331. @item Pages     @tab            650
  1332. @item Price     @tab            $39.99
  1333. @end multitable
  1334. Sams Teach Yourself @strong{MySQL} in 21 Days is for
  1335. intermediate Linux users who want to move into databases.  A large share of
  1336. the audience is Web developers who need a database to store large amounts of
  1337. information that can be retrieved via the Web.
  1338. @emph{Sams' Teach Yourself MySQL in 21 Days} is a practical, step-by-step
  1339. tutorial.  The reader will learn to design and employ this open source
  1340. database technology into his/her Web site using practical, hands-on examples
  1341. to follow.@*
  1342. @emph{E-Commerce Solutions with MySQL}
  1343. @multitable @columnfractions .3 .7
  1344. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0761524452&bfmtype=book, Barnes and Noble}
  1345. @item Publisher @tab            Prima Communications, Inc.
  1346. @item Authors   @tab            N/A
  1347. @item Pub Date  @tab            January 2000
  1348. @item ISBN      @tab            0761524452
  1349. @item Pages     @tab            500
  1350. @item Price     @tab            $39.99
  1351. @end multitable
  1352. No description available.
  1353. @*
  1354. @emph{MySQL and PHP from Scratch}
  1355. @multitable @columnfractions .3 .7
  1356. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0789724405&bfmtype=book, Barnes and Noble}
  1357. @item Publisher @tab            Que
  1358. @item Authors   @tab            N/A
  1359. @item Pub Date  @tab            September 2000
  1360. @item ISBN      @tab            0789724405
  1361. @item Pages     @tab            550
  1362. @item Price     @tab            $34.99
  1363. @end multitable
  1364. This book puts together information on installing, setting up, and
  1365. troubleshooting Apache, MySQL, PHP3, and IMP into one complete
  1366. volume. You also learn how each piece is part of a whole by learning,
  1367. step-by-step, how to create a web-based e-mail system. Learn to run
  1368. the equivalent of Active Server Pages (ASP) using PHP3, set up an
  1369. e-commerce site using a database and the Apache web server, and create
  1370. a data entry system (such as sales, product quality tracking, customer
  1371. preferences, etc) that no installation in the PC.
  1372. @*
  1373. @emph{Professional MySQL Programming}
  1374. @multitable @columnfractions .3 .7
  1375. @item Available @tab            @uref{http://shop.barnesandnoble.com/bookSearch/isbnInquiry.asp?isbn=1861005164, Barnes and Noble}
  1376. @item Publisher @tab            Wrox Press, Inc.
  1377. @item Authors   @tab            N/A
  1378. @item Pub Date  @tab            Late 2001
  1379. @item ISBN      @tab            1861005164
  1380. @item Pages     @tab            1000
  1381. @item Price     @tab            $49.99
  1382. @end multitable
  1383. No description available.
  1384. @*
  1385. @emph{Professional Linux Programming}
  1386. @multitable @columnfractions .3 .7
  1387. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1861003013&bfmtype=book, Barnes and Noble}
  1388. @item Publisher @tab            Wrox Press, Inc.
  1389. @item Authors   @tab            N/A
  1390. @item Pub Date  @tab            September 2000
  1391. @item ISBN      @tab            1861003013
  1392. @item Pages     @tab            1155
  1393. @item Price     @tab            $47.99
  1394. @end multitable
  1395. In this follow-up to the best-selling Beginning Linux Programming, you
  1396. will learn from the authors' real-world knowledge and experience of
  1397. developing software for Linux; you'll be taken through the development
  1398. of a sample 'DVD Store' application, with 'theme' chapters addressing
  1399. different aspects of its implementation. Meanwhile, individual
  1400. 'take-a-break' chapters cover important topics that go beyond the
  1401. bounds of the central theme. All focus on the practical aspects of
  1402. programming, showing how crucial it is to choose the right tools for
  1403. the job, use them as they should be used, and get things right first
  1404. time.
  1405. @*
  1406. @emph{PHP and MySQL Web Development}
  1407. @multitable @columnfractions .3 .7
  1408. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0672317842&bfmtype=book, Barnes and Noble}
  1409. @item Publisher @tab            Sams
  1410. @item Authors   @tab            Luke Welling, Laura Thomson
  1411. @item Pub Date  @tab            November 2000
  1412. @item ISBN      @tab            0672317842
  1413. @item Pages     @tab            700
  1414. @item Price     @tab            $49.99
  1415. @end multitable
  1416. PHP3 and MySQL Web Development introduces you to the advantages of
  1417. implementing both MySQL and PHP3. These advantages are detailed
  1418. through the provision of both statistics and several case studies. A
  1419. practical web application is developed throughout the book, providing
  1420. you with the tools necessary to implement a functional online
  1421. database. Each function is developed separately, allowing you the
  1422. choice to incorporate only those parts that you would like to
  1423. implement. Programming concepts of the PHP3 language are highlighted,
  1424. including functions which tie MySQL support into a PHP3 script and
  1425. advanced topics regarding table manipulation.
  1426. @*
  1427. @strong{Books recommended by the MySQL Developers}
  1428. @emph{SQL-99 Complete, Really}
  1429. @multitable @columnfractions .3 .7
  1430. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0879305681&bfmtype=book, Barnes and Noble}
  1431. @item Publisher @tab            CMP Books
  1432. @item Authors   @tab            Peter Gulutzan, Trudy Pelzer
  1433. @item Pub Date  @tab            April 1999
  1434. @item ISBN      @tab            0879305681
  1435. @item Pages     @tab            1104
  1436. @item Price     @tab            $55.96
  1437. @end multitable
  1438. This book contains complete descriptions of the new standards for
  1439. syntax, data structures, and retrieval processes of SQL databases. As
  1440. an example-based reference manual, it includes all of the CLI
  1441. functions, information, schema tables, and status codes, as well as a
  1442. working SQL database provided on the companion disk.
  1443. @*
  1444. @emph{C, A reference manual}
  1445. @multitable @columnfractions .3 .7
  1446. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0133262243&bfmtype=book, Barnes and Noble}
  1447. @item Publisher @tab            Prentice Hall
  1448. @item Authors   @tab            Samuel P. Harbison, Guy L. Steele
  1449. @item Pub Date  @tab            September 1994
  1450. @item ISBN      @tab            0133262243
  1451. @item Pages     @tab            480
  1452. @item Price     @tab            $35.99
  1453. @end multitable
  1454. A new and improved revision of the bestselling C language
  1455. reference. This manual introduces the notion of "Clean C, " writing C
  1456. code that can be compiled as a C++ program, C programming style that
  1457. emphasizes correctness, portability, and maintainability. and
  1458. incorporates the ISO C Amendment 1 (1994) which specifies new
  1459. facilities for writing portable, international programs in C.
  1460. @*
  1461. @emph{C++ for Real Programmers}
  1462. @multitable @columnfractions .3 .7
  1463. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0120499428&bfmtype=book, Barnes and Noble}
  1464. @item Publisher @tab            Academic Press, Incorporated
  1465. @item Authors   @tab            Jeff Alger, Jim Keogh
  1466. @item Pub Date  @tab            February 1998
  1467. @item ISBN      @tab            0120499428
  1468. @item Pages     @tab            388
  1469. @item Price     @tab            $39.95
  1470. @end multitable
  1471. C++ For Real Programmers bridges the gap between C++ as described in
  1472. beginner and intermediate-level books and C++ as it is practiced by
  1473. experts. Numerous valuable techniques are described, organized into
  1474. three simple themes: indirection, class hierarchies, and memory
  1475. management. It also provides indepth coverage of template creation,
  1476. exception handling, pointers and optimization techniques. The focus of
  1477. the book is on ANSI C++ and so is compiler independent. C++ For Real
  1478. Programmers is a revision of Secrets of the C++ Masters and includes a
  1479. new appendix comparing C++ with Java. The book comes with a 3.5" disk
  1480. for Windows with source code.
  1481. @*
  1482. @emph{Algorithms in C}
  1483. @multitable @columnfractions .3 .7
  1484. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0201514257&bfmtype=book, Barnes and Noble}
  1485. @item Publisher @tab            Addison Wesley Longman, Inc.
  1486. @item Authors   @tab            Robert Sedgewick
  1487. @item Pub Date  @tab            April 1990
  1488. @item ISBN      @tab            0201514257
  1489. @item Pages     @tab            648
  1490. @item Price     @tab            $45.75
  1491. @end multitable
  1492. Algorithms in C describes a variety of algorithms in a number of areas
  1493. of interest, including: sorting, searching, string-processing, and
  1494. geometric, graph and mathematical algorithms. The book emphasizes
  1495. fundamental techniques, providing readers with the tools to
  1496. confidently implement, run, and debug useful algorithms.
  1497. @*
  1498. @emph{Multithreaded Programming with Pthreads}
  1499. @multitable @columnfractions .3 .7
  1500. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0136807291&bfmtype=book, Barnes and Noble}
  1501. @item Publisher @tab            Prentice Hall
  1502. @item Authors   @tab            Bil Lewis, Daniel J. Berg
  1503. @item Pub Date  @tab            October 1997
  1504. @item ISBN      @tab            0136807291
  1505. @item Pages     @tab            432
  1506. @item Price     @tab            $34.95
  1507. @end multitable
  1508. Based on the best-selling Threads Primer, Multithreaded Programming
  1509. with Pthreads gives you a solid understanding of Posix threads: what
  1510. they are, how they work, when to use them, and how to optimize
  1511. them. It retains the clarity and humor of the Primer, but includes
  1512. expanded comparisons to Win32 and OS/2 implementations. Code examples
  1513. tested on all of the major UNIX platforms are featured along with
  1514. detailed explanations of how and why they use threads.
  1515. @*
  1516. @emph{Programming the PERL DBI: Database Programming with PERL}
  1517. @multitable @columnfractions .3 .7
  1518. @item Available @tab            @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1565926994&bfmtype=book, Barnes and Noble}
  1519. @item Publisher @tab            O'Reilly & Associates, Incorporated
  1520. @item Authors   @tab            Alligator Descartes, Tim Bunce
  1521. @item Pub Date  @tab            February 2000
  1522. @item ISBN      @tab            1565926994
  1523. @item Pages     @tab            400
  1524. @item Price     @tab            $27.96
  1525. @end multitable
  1526. Programming the Perl DBI is coauthored by Alligator Descartes, one of
  1527. the most active members of the DBI community, and by Tim Bunce, the
  1528. inventor of DBI. For the uninitiated, the book explains the
  1529. architecture of DBI and shows you how to write DBI-based programs. For
  1530. the experienced DBI dabbler, this book explains DBI's nuances and the
  1531. peculiarities of each individual DBD.
  1532. The book includes:
  1533. @itemize @bullet
  1534. @item
  1535. An introduction to DBI and its design
  1536. @item
  1537. How to construct queries and bind parameters
  1538. @item
  1539. Working with database, driver, and statement handles
  1540. @item
  1541. Debugging techniques
  1542. @item
  1543. Coverage of each existing DBD
  1544. @item
  1545. A complete reference to DBI
  1546. @end itemize
  1547. @*
  1548. @node Features, Stability, MySQL-Books, Introduction
  1549. @section The Main Features of MySQL
  1550. @cindex main features of MySQL
  1551. @cindex features of MySQL
  1552. The following list describes some of the important characteristics
  1553. of @strong{MySQL}:
  1554. @c This list is too technical and should be divided into one feature
  1555. @c list comparable to commercial competition and a very technical on
  1556. @c with max limits (from crash-me) and so on.
  1557. @itemize @bullet
  1558. @item
  1559. Fully multi-threaded using kernel threads. That means it can easily
  1560. use multiple CPUs if available.
  1561. @item
  1562. C, C++, Eiffel, Java, Perl, PHP, Python and Tcl APIs. @xref{Clients}.
  1563. @item
  1564. Works on many different platforms. @xref{Which OS}.
  1565. @item
  1566. Many column types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes
  1567. long, @code{FLOAT}, @code{DOUBLE}, @code{CHAR}, @code{VARCHAR},
  1568. @code{TEXT}, @code{BLOB}, @code{DATE}, @code{TIME}, @code{DATETIME},
  1569. @code{TIMESTAMP}, @code{YEAR}, @code{SET}, and @code{ENUM} types. @xref{Column
  1570. types}.
  1571. @item
  1572. Very fast joins using an optimized one-sweep multi-join.
  1573. @item
  1574. Full operator and function support in the @code{SELECT} and @code{WHERE}
  1575. parts of queries. Example:
  1576. @example
  1577. mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
  1578.            WHERE income/dependents > 10000 AND age > 30;
  1579. @end example
  1580. @item
  1581. SQL functions are implemented through a highly optimized class library and
  1582. should be as fast as they can get! Usually there shouldn't be any memory
  1583. allocation at all after query initialization.
  1584. @item
  1585. Full support for SQL @code{GROUP BY} and @code{ORDER BY}
  1586. clauses. Support for group functions (@code{COUNT()},
  1587. @code{COUNT(DISTINCT)}, @code{AVG()}, @code{STD()}, @code{SUM()},
  1588. @code{MAX()} and @code{MIN()}).
  1589. @item
  1590. Support for @code{LEFT OUTER JOIN} and @code{RIGHT OUTER JOIN} with ANSI
  1591. SQL and ODBC syntax.
  1592. @item
  1593. You can mix tables from different databases in the same query (as of
  1594. Version 3.22).
  1595. @item
  1596. A privilege and password system that is very flexible and secure and
  1597. allows host-based verification.  Passwords are secure because all
  1598. password traffic is encrypted when you connect to a server.
  1599. @item
  1600. ODBC (Open-DataBase-Connectivity) support for Win32 (with source). All
  1601. ODBC 2.5 functions and many others.  For example, you can use MS Access to
  1602. connect to your @strong{MySQL} server. @xref{ODBC}.
  1603. @item
  1604. Very fast B-tree disk tables with index compression.
  1605. @item
  1606. Up to 32 indexes per table are allowed. Each index may consist of 1 to 16
  1607. columns or parts of columns. The maximum index length is 500 bytes (this
  1608. may be changed when compiling @strong{MySQL}). An index may use a prefix
  1609. of a @code{CHAR} or @code{VARCHAR} field.
  1610. @item
  1611. Fixed-length and variable-length records.
  1612. @item
  1613. In-memory hash tables which are used as temporary tables.
  1614. @item
  1615. Handles large databases.  We are using @strong{MySQL} with some
  1616. databases that contain 50,000,000 records and we know of users that
  1617. uses @strong{MySQL} with 60,000 tables and about 5,000,000,000 rows
  1618. @item
  1619. All columns have default values.  You can use @code{INSERT} to insert a
  1620. subset of a table's columns; those columns that are not explicitly given
  1621. values are set to their default values.
  1622. @item
  1623. Uses GNU Automake, Autoconf, and @code{libtool} for portability.
  1624. @item
  1625. Written in C and C++. Tested with a broad range of different compilers.
  1626. @item
  1627. A very fast thread-based memory allocation system.
  1628. @item
  1629. No memory leaks. Tested with a commercial memory leakage detector
  1630. (@code{purify}).
  1631. @item
  1632. Includes @code{myisamchk}, a very fast utility for table checking,
  1633. optimization, and repair.
  1634. @xref{Maintenance}.
  1635. @item
  1636. Full support for several different character sets, including
  1637. ISO-8859-1 (Latin1), big5, ujis, and more. For example, the
  1638. Scandinavian characters `@ringaccent{a}', `@"a' and `@"o' are allowed
  1639. in table and column names.
  1640. @item
  1641. All data are saved in the chosen character set. All comparisons for normal
  1642. string columns are case insensitive.
  1643. @item
  1644. Sorting is done according to the chosen character set (the Swedish
  1645. way by default). It is possible to change this when the @strong{MySQL} server
  1646. is started up.  To see an example of very advanced sorting, look at the
  1647. Czech sorting code. @strong{MySQL} supports many different character sets
  1648. that can be specified at compile and run time.
  1649. @item
  1650. Aliases on tables and columns are allowed as in the SQL92 standard.
  1651. @item
  1652. @code{DELETE}, @code{INSERT}, @code{REPLACE}, and @code{UPDATE} return
  1653. how many rows were changed (affected). It is possible to return the number
  1654. of rows matched instead by setting a flag when connecting to the server.
  1655. @item
  1656. Function names do not clash with table or column names. For example, @code{ABS}
  1657. is a valid column name. The only restriction is that for a function call, no
  1658. spaces are allowed between the function name and the @samp{(} that follows it.
  1659. @xref{Reserved words}.
  1660. @item
  1661. All @strong{MySQL} programs can be invoked with the @code{--help} or @code{-?}
  1662. options to obtain online assistance.
  1663. @item
  1664. The server can provide error messages to clients in many
  1665. languages. @xref{Languages}.
  1666. @item
  1667. Clients may connect to the @strong{MySQL} server using TCP/IP Sockets,
  1668. Unix Sockets (Unixes), or Named Pipes (NT).
  1669. @item
  1670. The @strong{MySQL}-specific @code{SHOW} command can be used to retrieve
  1671. information about databases, tables, and indexes. The @code{EXPLAIN} command
  1672. can be used to determine how the optimizer resolves a query.
  1673. @end itemize
  1674. @cindex stability
  1675. @node Stability, Year 2000 compliance, Features, Introduction
  1676. @section How Stable Is MySQL?
  1677. This section addresses the questions ``How stable is
  1678. @strong{MySQL}?'' and ``Can I depend on @strong{MySQL} in this project?''
  1679. We will try to clarify some issues and to answer some of the more
  1680. important questions that seem to concern many people.  This section has been
  1681. put together from information gathered from the mailing list (which is very
  1682. active in reporting bugs).
  1683. At TcX, @strong{MySQL} has worked without any problems in our projects since
  1684. mid-1996. When @strong{MySQL} was released to a wider public, we noticed that
  1685. there were some pieces of ``untested code'' that were quickly found by the
  1686. new users who made queries in a manner different than our own.  Each new
  1687. release has had fewer portability problems than the previous one (even though
  1688. each has had many new features).
  1689. @c FIX We've been stable for quite a while now. :) (jcole)
  1690. Each release of @strong{MySQL} has been usable, and there have been problems
  1691. only when users start to use code from the ``gray zones.'' Naturally, outside
  1692. users don't know what the gray zones are; this section attempts to indicate
  1693. those that are currently known.  The descriptions deal with Version 3.23.x
  1694. of @strong{MySQL}. All known and reported bugs are fixed in the
  1695. latest version, with the exception of the bugs listed in the bugs section,
  1696. which are things that are design-related.  @xref{Bugs}.
  1697. @strong{MySQL} is written in multiple layers and different independent
  1698. modules.  These modules are listed below with an indication of how
  1699. well-tested each of them is:
  1700. @cindex modules, list of
  1701. @table @strong
  1702. @item The ISAM table handler --- Stable
  1703. This manages storage and retrieval of all data in @strong{MySQL} Version 3.22
  1704. and earlier. In all @strong{MySQL} releases there hasn't been a
  1705. single (reported) bug in this code. The only known way to get a
  1706. corrupted table is to kill the server in the middle of an update.  Even
  1707. that is unlikely to destroy any data beyond rescue, because all data are
  1708. flushed to disk between each query.  There hasn't been a single bug
  1709. report about lost data because of bugs in @strong{MySQL}.
  1710. @cindex ISAM table handler
  1711. @cindex storing, data
  1712. @cindex retrieving, data
  1713. @cindex data, ISAM table handler
  1714. @item The MyISAM table handler --- Gamma
  1715. This is new in @strong{MySQL} Version 3.23. It's largely based on the ISAM
  1716. table code but has a lot of new and very useful features.
  1717. @item The parser and lexical analyser --- Stable
  1718. There hasn't been a single reported bug in this system for a long time.
  1719. @item The C client code --- Stable
  1720. No known problems. In early Version 3.20 releases, there were some limitations
  1721. in the send/receive buffer size. As of Version 3.21, the buffer size is now
  1722. dynamic up to a default of 16M.
  1723. @item Standard client programs --- Stable
  1724. These include @code{mysql}, @code{mysqladmin}, @code{mysqlshow},
  1725. @code{mysqldump}, and @code{mysqlimport}.
  1726. @item Basic SQL --- Stable
  1727. The basic SQL function system and string classes and dynamic memory
  1728. handling. Not a single reported bug in this system.
  1729. @item Query optimizer --- Stable
  1730. @item Range optimizer --- Stable
  1731. @item Join optimizer --- Stable
  1732. @item Locking --- Gamma
  1733. This is very system-dependent. On some systems there are big problems
  1734. using standard OS locking (@code{fcntl()}).  In these cases, you should run the
  1735. @strong{MySQL} daemon with the @code{--skip-locking} flag.  Problems are known
  1736. to occur on some Linux systems, and on SunOS when using NFS-mounted file
  1737. systems.
  1738. @item Linux threads --- Stable
  1739. The major problem found has been with the @code{fcntl()} call, which is
  1740. fixed by using the @w{@code{--skip-locking}} option to
  1741. @code{mysqld}. Some people have reported lockup problems with Version 0.5.
  1742. LinuxThreads will need to be recompiled if you plan to use
  1743. 1000+ concurrent connections. Although it is possible to run that many
  1744. connections with the default LinuxThreads (however, you will never go
  1745. above 1021), the default stack spacing of 2 MB makes the application
  1746. unstable, and we have been able to reproduce a coredump after creating
  1747. 1021 idle connections. See Linux Notes for more details.
  1748. @item Solaris 2.5+ pthreads --- Stable
  1749. We use this for all our production work.
  1750. @item MIT-pthreads (Other systems) --- Stable
  1751. There have been no reported bugs since Version 3.20.15 and no known bugs since
  1752. Version 3.20.16. On some systems, there is a ``misfeature'' where some
  1753. operations are quite slow (a 1/20 second sleep is done between each query).
  1754. Of course, MIT-pthreads may slow down everything a bit, but index-based
  1755. @code{SELECT} statements are usually done in one time frame so there shouldn't
  1756. be a mutex locking/thread juggling.
  1757. @item Other thread implementions --- Beta - Gamma
  1758. The ports to other systems are still very new and may have bugs, possibly
  1759. in @strong{MySQL}, but most often in the thread implementation itself.
  1760. @item @code{LOAD DATA ...}, @code{INSERT ... SELECT} --- Stable
  1761. Some people thought they had found bugs here, but these usually have
  1762. turned out to be misunderstandings. Please check the manual before reporting
  1763. problems!
  1764. @item @code{ALTER TABLE} --- Stable
  1765. Small changes in Version 3.22.12.
  1766. @item DBD --- Stable
  1767. Now maintained by Jochen Wiedmann
  1768. @email{wiedmann@@neckar-alb.de}. Thanks!
  1769. @item @code{mysqlaccess} --- Stable
  1770. Written and maintained by Yves Carlier
  1771. @email{Yves.Carlier@@rug.ac.be}. Thanks!
  1772. @item @code{GRANT} --- Stable
  1773. Big changes made in @strong{MySQL} Version 3.22.12.
  1774. @item @strong{MyODBC} (uses ODBC SDK 2.5) --- Gamma
  1775. It seems to work well with some programs.
  1776. @item Replication -- Beta / Gamma
  1777. We are still working on replication, so don't expect this to be rock
  1778. solid yet.  On the other hand, some @strong{MySQL} users are already
  1779. using this with good results.
  1780. @item BDB Tables -- Beta
  1781. The Berkeley DB code is very stable, but we are still improving the interface
  1782. between @strong{MySQL} and BDB tables, so it will take some time before this
  1783. is as tested as the other table types.
  1784. @item Innobase Tables -- Alpha
  1785. This is a very recent addition to @code{MySQL} and are not very tested yet.
  1786. @item Automatic recovery of MyISAM tables - Beta.
  1787. This only affects the new code that checks if the table was closed properly
  1788. on open and executes an automatic check/repair of the table if it wasn't.
  1789. @item MERGE tables -- Beta / Gamma
  1790. The usage of keys on @code{MERGE} tables is still not that tested.  The
  1791. other part of the @code{MERGE} code is quite well tested.
  1792. @item FULLTEXT -- Beta
  1793. Text search seams to work, but is still not widely used.
  1794. @end table
  1795. MySQL AB provides e-mail support for paying customers, but the @strong{MySQL}
  1796. mailing list usually provides answers to common questions. Bugs are
  1797. usually fixed right away with a patch; for serious bugs, there is almost
  1798. always a new release.
  1799. @cindex Year 2000 compliance
  1800. @cindex compliance, Y2K
  1801. @cindex date functions, Y2K compliance
  1802. @node Year 2000 compliance, General-SQL, Stability, Introduction
  1803. @section Year 2000 Compliance
  1804. @strong{MySQL} itself has no problems with Year 2000 (Y2K) compliance:
  1805. @itemize @bullet
  1806. @item
  1807. @strong{MySQL} uses Unix time functions and has no problems with dates
  1808. until @code{2069}; all 2-digit years are regarded to be in the range
  1809. @code{1970} to @code{2069}, which means that if you store @code{01} in a
  1810. @code{year} column, @strong{MySQL} treats it as @code{2001}.
  1811. @item
  1812. All @strong{MySQL} date
  1813. functions are stored in one file @file{sql/time.cc} and coded very carefully
  1814. to be year 2000-safe.
  1815. @item
  1816. In @strong{MySQL} Version 3.22 and later, the new @code{YEAR} column type
  1817. can store years @code{0} and @code{1901} to @code{2155} in 1 byte and display
  1818. them using 2 or 4 digits.
  1819. @end itemize
  1820. You may run into problems with applications that use @strong{MySQL} in a
  1821. way that is not Y2K-safe.  For example, many old applications store
  1822. or manipulate years using 2-digit values (which are ambiguous) rather than
  1823. 4-digit values.  This problem may be compounded by applications that use
  1824. values such as @code{00} or @code{99} as ``missing'' value indicators.
  1825. Unfortunately, these problems may be difficult to fix, because different
  1826. applications may be written by different programmers, each of whom may
  1827. use a different set of conventions and date-handling functions.
  1828. Here is a simple demonstration illustrating that @strong{MySQL} doesn't have
  1829. any problems with dates until the year 2030:
  1830. @example
  1831. mysql> DROP TABLE IF EXISTS y2k;
  1832. mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
  1833. mysql> INSERT INTO y2k VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959);
  1834. mysql> INSERT INTO y2k VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000);
  1835. mysql> INSERT INTO y2k VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959);
  1836. mysql> INSERT INTO y2k VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000);
  1837. mysql> INSERT INTO y2k VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000);
  1838. mysql> INSERT INTO y2k VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000);
  1839. mysql> INSERT INTO y2k VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000);
  1840. mysql> INSERT INTO y2k VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959);
  1841. mysql> INSERT INTO y2k VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000);
  1842. mysql> INSERT INTO y2k VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959);
  1843. mysql> INSERT INTO y2k VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000);
  1844. mysql> INSERT INTO y2k VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000);
  1845. mysql> INSERT INTO y2k VALUES ("2050-01-01","2050-01-01 00:00:00",20500101000000);
  1846. mysql> SELECT * FROM y2k;
  1847. +------------+---------------------+----------------+
  1848. | date       | date_time           | time_stamp     |
  1849. +------------+---------------------+----------------+
  1850. | 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
  1851. | 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
  1852. | 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
  1853. | 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
  1854. | 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
  1855. | 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
  1856. | 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
  1857. | 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
  1858. | 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
  1859. | 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
  1860. | 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
  1861. | 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
  1862. | 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
  1863. +------------+---------------------+----------------+
  1864. 13 rows in set (0.00 sec)
  1865. @end example
  1866. This shows that the @code{DATE} and @code{DATETIME} types will not
  1867. give any problems with future dates (they handle dates until the year
  1868. 9999).
  1869. The @code{TIMESTAMP} type, which is used to store the current time, has a
  1870. range up to only @code{2030-01-01}. @code{TIMESTAMP} has a range of
  1871. @code{1970} to @code{2030} on 32-bit machines (signed value). On 64-bit
  1872. machines it handles times up to @code{2106} (unsigned value).
  1873. Even though @strong{MySQL} is Y2K-compliant, it is your responsibility to
  1874. provide unambiguous input.  See @ref{Y2K issues} for @strong{MySQL}'s rules
  1875. for dealing with ambiguous date input data (data containing 2-digit year
  1876. values).
  1877. @cindex manuals, about @strong{MySQL}
  1878. @cindex books, about @strong{MySQL}
  1879. @node General-SQL, Useful Links, Year 2000 compliance, Introduction
  1880. @section General SQL Information and Tutorials
  1881. The following book has been recommended by several people on the @strong{MySQL}
  1882. mailing list:
  1883. @example
  1884. Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky
  1885. @emph{The Practical SQL Handbook: Using Structured Query Language}
  1886. Second Edition
  1887. Addison-Wesley
  1888. ISBN 0-201-62623-3
  1889. http://www.awl.com
  1890. @end example
  1891. The following book has also received some recommendations by @strong{MySQL}
  1892. users:
  1893. @example
  1894. Martin Gruber
  1895. @emph{Understanding SQL}
  1896. ISBN 0-89588-644-8
  1897. Publisher Sybex 510 523 8233
  1898. Alameda, CA USA
  1899. @end example
  1900. A SQL tutorial is available on the net at
  1901. http://www.geocities.com/SiliconValley/Vista/2207/sql1.html.
  1902. @c A nice german 404 error. (jcole)
  1903. @c SQL in 21 Tagen (online book in German language):
  1904. @c http://www.mut.de/leseecke/buecher/sql/inhalt.htm
  1905. @node Useful Links,  , General-SQL, Introduction
  1906. @section Useful MySQL-related Links
  1907. Apart from the following links, you can find and download a lot of
  1908. @strong{MySQL} programs, tools and APIs from the
  1909. @uref{http://www.mysql.com/Downloads/Contrib/, Contrib directory}.
  1910. @cindex @code{Contrib} directory
  1911. @cindex URLs to MySQL information
  1912. @cindex related information URLs
  1913. @strong{MySQL}
  1914. @subheading Tutorials and Manuals
  1915. @itemize @bullet
  1916. @item @uref{http://www.4t2.com/mysql}@*
  1917. Information about the German MySQL mailing list.
  1918. @item @uref{http://www2.rent-a-database.de/mysql/}
  1919. @strong{MySQL} manual in German.
  1920. @item @uref{http://www.bitmover.com:8888//home/bk/mysql}@*
  1921. Web access to the @strong{MySQL} BitKeeper repository.
  1922. @item @uref{http://www.analysisandsolutions.com/code/mybasic.htm}@*
  1923. Beginners @strong{MySQL} Tutorial on how to install and set up
  1924. @strong{MySQL} on a Windows machine.
  1925. @item @uref{http://www.devshed.com/Server_Side/MySQL/}@*
  1926. A lot of @strong{MySQL} tutorials.
  1927. @item @uref{http://mysql.hitstar.com/}@*
  1928. MySQL manual in Chinese.
  1929. @item @uref{http://www.linuxplanet.com/linuxplanet/tutorials/1046/1/}@*
  1930. Setting Up a @strong{MySQL}-based Web site.
  1931. @item @uref{http://www.hotwired.com/webmonkey/backend/tutorials/tutorial1.html}@*
  1932. @strong{MySQL}-Perl tutorial.
  1933. @item @uref{http://www.iserver.com/support/contrib/perl5/modules.html}@*
  1934. Installing new Perl modules that require locally installed modules.
  1935. @item @uref{http://www.hotwired.com/webmonkey/databases/tutorials/tutorial4.html}@*
  1936. PHP/@strong{MySQL} Tutorial.
  1937. @item @uref{http://www.useractive.com/}@*
  1938. Hands on tutorial for @strong{MySQL}.
  1939. @end itemize
  1940. @subheading Porting MySQL/Using MySQL on Different Systems
  1941. @itemize @bullet
  1942. @item @uref{http://xclave.macnn.com/MySQL/}@*
  1943. The Mac OS Xclave. Running @strong{MySQL} on Mac OS X
  1944. @item @uref{http://www.prnet.de/RegEx/mysql.html}@*
  1945. MySQL for Mac OS X Server.
  1946. @item @uref{http://www.latencyzero.com/macosx/mysql.html}@*
  1947. Bulding MySQL for Mac OS X
  1948. @item @uref{http://www.essencesw.com/Software/mysqllib.html}@*
  1949. New Client libraries for the Mac OS Classic (Macintosh).
  1950. @item @uref{http://www.lilback.com/macsql/}@*
  1951. Client libraries for Mac OS Classic (Macintosh).
  1952. @end itemize
  1953. @subheading Perl-related Links
  1954. @itemize @bullet
  1955. @item @uref{http://dbimysql.photoflux.com/}@*
  1956. Perl DBI with @strong{MySQL} FAQ.
  1957. @end itemize
  1958. @subheading MySQL Discussion Forums
  1959. @itemize @bullet
  1960. @item @uref{http://www.weberdev.com/}@*
  1961. Examples using @strong{MySQL}; (check Top 20)
  1962. @item @uref{http://futurerealm.com/forum/futureforum.htm}@*
  1963. FutureForum Web Discussion Software.
  1964. @end itemize
  1965. @c FIX We should get longer descriptions for things in this category!
  1966. @subheading Commercial Applications that Support MySQL
  1967. @itemize @bullet
  1968. @item @uref{http://www.supportwizard.com/}@*
  1969. SupportWizard; Interactive helpdesk on the Web (This product includes a
  1970. licensed copy of @strong{MySQL}.)
  1971. @item @uref{http://www.sonork.com/}@*
  1972. Sonork,  Instant Messenger that is not only Internet oriented. It's 
  1973. focused on private networks and on small to medium companies.  Client
  1974. is free, server is free for up to 5 seats.
  1975. @item @uref{http://www.stweb.org/}@*
  1976. StWeb - Stratos Web and Application server - An easy-to-use, cross
  1977. platform, Internet/Intranet development and deployment system for
  1978. development of web-enabled applications. The standard version of StWeb
  1979. has a native interface to @strong{MySQL} database.
  1980. @item @uref{http://www.rightnowtech.com/}@*
  1981. Right Now Web; Web automation for customer service.
  1982. @item @uref{http://www.icaap.org/Bazaar/}@*
  1983. Bazaar; Interactive Discussion Forums with Web interface.
  1984. @cindex PhoneSweep
  1985. @item @uref{http://www.phonesweep.com/}@*
  1986. PhoneSweepT is the world's first commercial Telephone Scanner. Many break-ins
  1987. in recent years have come not through the Internet, but through unauthorized
  1988. dial-up modems. PhoneSweep lets you find these modems by repeatedly placing
  1989. phone calls to every phone number that your organization
  1990. controls. PhoneSweep has a built-in expert system that can recognize
  1991. more than 250 different kinds of remote-access programs, including
  1992. Carbon Copy(TM), pcANYWHERE(TM), and Windows NT RAS. All information is stored
  1993. in the SQL database. It then generates a comprehensive report detailing
  1994. which services were discovered on which dial-up numbers in your
  1995. organization.
  1996. @end itemize
  1997. @subheading SQL Clients and Report Writers
  1998. @itemize @bullet
  1999. @item @uref{http://www.urbanresearch.com/software/utils/urbsql/index.html}@*
  2000. @strong{MySQL} Editor/Utility for MS Windows Platforms.
  2001. @item @uref{http://ksql.sourceforge.net/}@*
  2002. KDE @strong{MySQL} client.
  2003. @item @uref{http://www.ecker-software.de}@*
  2004. A Windows GUI client by David Ecker.
  2005. @item @uref{http://www.icaap.org/software/kiosk/}@*
  2006. Kiosk; a @strong{MySQL} client for database management. Written in Perl.
  2007. Will be a part of Bazaar.
  2008. @item @uref{http://www.casestudio.com/}
  2009. Db design tool that supports MySQL 3.23.
  2010. @item @uref{http://home.skif.net/~voland/zeos/eng/index.html}@*
  2011. Zeos - A client that supports @strong{MySQL}, Interbase and PostgreSQL.
  2012. @item @uref{http://www.geocities.com/SiliconValley/Ridge/4280/GenericReportWriter/grwhome.html}
  2013. A free report writer in Java
  2014. @item @uref{http://www.javaframework.de}@*
  2015. MySQLExport - Export of @strong{MySQL} create statements and data in a lot of
  2016. different formats (SQL, HTML, CVS, text, ZIP, GZIP...)
  2017. @item @uref{http://dlabs.4t2.com}@*
  2018. M2D, a MySQL-ADmin-client for windows. It supports administration of
  2019. MySQL-Databases, creating of new DBs and tables, editing etc.
  2020. @item @uref{http://www.scibit.com/Products/Software/Utils/Mascon.asp}@*
  2021. Mascon is a powerful Win32 GUI for the administering MySQL server databases.
  2022. @item @uref{http://www.rtlabs.com/}@*
  2023. MacSQL Monitor.  GUI for MySQL, ODBC, and JDBC databases for the Mac OS.
  2024. @end itemize
  2025. @subheading Distributions that Include MySQL
  2026. @c FIX add the rest (at least a couple more Linuxes)
  2027. @itemize @bullet
  2028. @item @uref{http://www.suse.com/}@*
  2029. SuSE Linux (6.1 and above)
  2030. @item @uref{http://www.redhat.com/}@*
  2031. RedHat Linux (7.0 and above)
  2032. @item @uref{http://distro.conectiva.com.br}
  2033. Conectiva Linux (4.0 and above)
  2034. @end itemize
  2035. @subheading Web Development Tools that Support @strong{MySQL}
  2036. @itemize @bullet
  2037. @item @uref{http://www.php.net/}@*
  2038. PHP: A server-side HTML-embedded scripting language.
  2039. @item @uref{http://www.midgard-project.org}@*
  2040. The Midgard Application Server; a powerful Web development environment
  2041. based on @strong{MySQL} and PHP.
  2042. @item @uref{http://www.smartworker.org}@*
  2043. SmartWorker is a platform for Web application development.
  2044. @item @uref{http://xsp.lentus.se/}@*
  2045. XSP: e(X)tendible (S)erver (P)ages and is a HTML embedded tag language
  2046. written in Java (previously known as XTAGS.)
  2047. @cindex dbServ
  2048. @item @uref{http://www.dbServ.de/}@*
  2049. dbServ is an extension to a web server to integrate database output into
  2050. your HTML code. You may use any HTML function in your output. Only the
  2051. client will stop you. It works as standalone server or as JAVA servlet.
  2052. @item @uref{http://www.chilisoft.com/}@*
  2053. Platform independent ASP from Chili!Soft
  2054. @c @item
  2055. @c no answer from server 990830
  2056. @c @uref{http://www.voicenet.com/~zellert/tjFM}@*
  2057. @c A JDBC driver for @strong{MySQL}.
  2058. @item @uref{http://www.wernhart.priv.at/php/}@*
  2059. @strong{MySQL} + PHP demos.
  2060. @item @uref{http://www.dbwww.com/}@*
  2061. ForwardSQL: HTML interface to manipulate @strong{MySQL} databases.
  2062. @item @uref{http://www.daa.com.au/~james/www-sql/}@*
  2063. WWW-SQL: Display database information.
  2064. @item @uref{http://www.minivend.com/minivend/}@*
  2065. Minivend: A Web shopping cart.
  2066. @item @uref{http://www.heitml.com/}@*
  2067. HeiTML: A server-side extension of HTML and a 4GL language at the same time.
  2068. @item @uref{http://www.metahtml.com/}@*
  2069. Metahtml: A Dynamic Programming Language for WWW Applications.
  2070. @item @uref{http://www.binevolve.com/}@*
  2071. VelocityGen for Perl and Tcl.
  2072. @item @uref{http://hawkeye.net/}@*
  2073. Hawkeye Internet Server Suite.
  2074. @item @uref{http://www.fastflow.com/}@*
  2075. Network Database Connection For Linux
  2076. @item @uref{http://www.wdbi.net/}@*
  2077. WDBI: Web browser as a universal front end to databases which supports
  2078. @strong{MySQL} well.
  2079. @item @uref{http://www.webgroove.com/}@*
  2080. WebGroove Script: HTML compiler and server-side scripting language.
  2081. @item @uref{http://www.ihtml.com/}@*
  2082. A server-side Web site scripting language.
  2083. @item @uref{ftp://ftp.igc.apc.org/pub/myodbc/README}@*
  2084. How to use @strong{MySQL} with ColdFusion on Solaris.
  2085. @item @uref{http://calistra.com/MySQL/}@*
  2086. Calistra's ODBC @strong{MySQL} Administrator.
  2087. @cindex Webmerger
  2088. @item @uref{http://www.webmerger.com}@*
  2089. Webmerger -  This CGI tool interprets files and generates dynamic output
  2090. based on a set of simple tags. Ready-to-run drivers for @strong{MySQL} and
  2091. PostgreSQL through ODBC.
  2092. @item @uref{http://phpclub.net/}@*
  2093. PHPclub - Tips and tricks for PHP.
  2094. @item @uref{http://www.penguinservices.com/scripts}@*
  2095. @strong{MySQL} and Perl Scripts.
  2096. @item @uref{http://www.widgetchuck.com}@*
  2097. The Widgetchuck; Web Site Tools and Gadgets
  2098. @item @uref{http://www.adcycle.com/}@*
  2099. AdCycle - advertising management software.
  2100. @cindex pwPage
  2101. @item @uref{http://sourceforge.net/projects/pwpage/}@*
  2102. pwPage - provides an extremely
  2103. fast and simple approach to the creation of database forms.  That is,
  2104. if a database table exists and an HTML page has been constructed using
  2105. a few simple guidelines, pwPage can be immediately used for table data
  2106. selections, insertions, updates, deletions and selectable table content
  2107. reviewing.
  2108. @item @uref{http://www.omnis-software.com/products/studio/studio.html}@*
  2109. OMNIS Studio is a rapid application development (RAD) tool.
  2110. @cindex Web+
  2111. @item @uref{http://www.webplus.com}@*
  2112. talentsoft Web+ 4.6 - a powerful and comprehensive development language for
  2113. use in creating web-based client/server applications without writing
  2114. complicated, low-level, and time-consuming CGI programs.
  2115. @end itemize
  2116. @subheading Database Design Tools with MySQL Support
  2117. @itemize @bullet
  2118. @item @uref{http://www.mysql.com/documentation/dezign/}@*
  2119. "DeZign for databases" is a database development tool that uses an
  2120. entity relationship diagram (ERD).
  2121. @end itemize
  2122. @subheading Web Servers with @strong{MySQL} Tools
  2123. @itemize @bullet
  2124. @item @uref{http://bourbon.netvision.net.il/mysql/mod_auth_mysql/}@*
  2125. An Apache authentication module.
  2126. @item @uref{http://www.roxen.com/}@*
  2127. The Roxen Challenger Web server.
  2128. @end itemize
  2129. @subheading Extensions for Other Programs
  2130. @itemize @bullet
  2131. @item @uref{http://www.seawood.org/msql_bind/}@*
  2132. @strong{MySQL} support for BIND (The Internet Domain Name Server).
  2133. @item @uref{http://www.inet-interactive.com/sendmail/}@*
  2134. @strong{MySQL} support for Sendmail and Procmail.
  2135. @end itemize
  2136. @subheading Using @strong{MySQL} with Other Programs
  2137. @itemize @bullet
  2138. @item @uref{http://www.iserver.com/support/addonhelp/database/mysql/msaccess.html}
  2139. Using @strong{MySQL} with Access.
  2140. @item @uref{http://www.iserver.com/support/contrib/perl5/modules.html}
  2141. Installing new Perl modules that require locally installed modules.
  2142. @end itemize
  2143. @subheading ODBC-related Links
  2144. @itemize @bullet
  2145. @item @uref{http://www.iodbc.org/}@*
  2146. Popular iODBC Driver Manager (libiodbc) now available in Open Source format.
  2147. @item @uref{http://users.ids.net/~bjepson/freeODBC/}@*
  2148. The FreeODBC Pages.
  2149. @item @uref{http:/http://genix.net/unixODBC/}@*
  2150. The unixODBC Project goals are to develop and promote unixODBC to be the
  2151. definitive standard for ODBC on the Linux platform. This is to include GUI
  2152. support for KDE.
  2153. @item @uref{http://www.sw-soft.com/products/BtrieveODBC/}@*
  2154. A @strong{MySQL}-based ODBC drivers for Btrieve. From SWsoft.
  2155. @end itemize
  2156. @subheading @strong{API}-related Links
  2157. @itemize @bullet
  2158. @c FIX i get no route on this host on 7/31/2k, check later (jcole)
  2159. @item @uref{http://www.amedea.cz/mysqlx/index.html}@*
  2160. MySQL COM extension - With this COM object you can use MySQL also on
  2161. Windows with ASP pages or with Delphi, Visual Basic, Visual C++, etc.
  2162. @item @uref{http://www.jppp.com/}@*
  2163. Partially implemented TDataset-compatible components for @strong{MySQL}.
  2164. @item @uref{http://www.riverstyx.net/qpopmysql/}@*
  2165. qpopmysql - A patch to allow POP3 authentication from a @strong{MySQL}
  2166. database. There's also a link to Paul Khavkine's patch for Procmail to allow
  2167. any MTA to deliver to users in a @strong{MySQL} database.
  2168. @item @uref{http://www.pbc.ottawa.on.ca}@*
  2169. Visual Basic class generator for Active X.
  2170. @item @uref{http://www.essencesw.com/Software/mysqllib.html}@*
  2171. New Client libraries for the Mac OS Classic (Macintosh).
  2172. @item @uref{http://www.lilback.com/macsql/}@*
  2173. Client libraries for the Macintosh.
  2174. @item @uref{http://www.essencesw.com/Plugins/mysqlplug.html}@*
  2175. Plugin for REALbasic (for Machintosh)
  2176. @item @uref{http://www.iis.ee.ethz.ch/~neeri/macintosh/gusi-qa.html}@*
  2177. A library that emulates BSD sockets and pthreads on Macintosh. This can
  2178. be used if you want to compile the @strong{MySQL} client library on Mac. It
  2179. could probably even be sued to port @strong{MySQL} to Macintosh, but we
  2180. don't know of anyone that has tried that.
  2181. @c 404 not found
  2182. @c @item @uref{http://tfdec1.fys.kuleuven.ac.be/~michael/fpc-linux/mysql}@*
  2183. @c @strong{MySQL} binding to Free Pascal.
  2184. @item @uref{http://www.dedecker.net/jessie/scmdb/}@*
  2185. SCMDB - an add-on for SCM that ports the mysql C library to scheme (SCM).
  2186. With this library scheme developers can make connections to a mySQL
  2187. database and use embedded SQL in their programs.
  2188. @cindex SCMDB
  2189. @end itemize
  2190. @subheading Other @strong{MySQL}-related Links
  2191. @itemize @bullet
  2192. @item @uref{http://www.satisoft.com/, SAT}
  2193. The Small Application Toolkit (SAT) is a collection of utilities
  2194. intended to simplify the development of small, multi-user, GUI based
  2195. applications in a (Microsoft -or- X) Windows Client / Unix Server
  2196. environment.
  2197. @item @uref{http://www.wix.com/mysql-hosting/}@*
  2198. Registry of Web providers who support @strong{MySQL}.
  2199. @item @uref{http://www.softagency.co.jp/mysql/index.en.phtml}@*
  2200. Links about using @strong{MySQL} in Japan/Asia.
  2201. @item @uref{http://abattoir.cc.ndsu.nodak.edu/~nem/mysql/udf/}@*
  2202. @strong{MySQL} UDF Registry.
  2203. @item @uref{http://www.open.com.au/products.html}@*
  2204. Commercial Web defect tracking system.
  2205. @item @uref{http://www.stonekeep.com/pts/}@*
  2206. PTS: Project Tracking System.
  2207. @item @uref{http://tomato.nvgc.vt.edu/~hroberts/mot}@*
  2208. Job and software tracking system.
  2209. @item @uref{http://www.cynergi.net/non-secure/exportsql/}@*
  2210. ExportSQL: A script to export data from Access95+.
  2211. @item @uref{http://SAL.KachinaTech.COM/H/1/MYSQL.html}@*
  2212. SAL (Scientific Applications on Linux) @strong{MySQL} entry.
  2213. @item @uref{http://www.infotech-nj.com/itech/index.shtml}@*
  2214. A consulting company which mentions @strong{MySQL} in the right company.
  2215. @item @uref{http://www.pmpcs.com/}@*
  2216. PMP Computer Solutions. Database developers using @strong{MySQL} and
  2217. @code{mSQL}.
  2218. @item @uref{http://www.aewa.org/}@*
  2219. Airborne Early Warning Association.
  2220. @item @uref{http://www.dedserius.com/y2kmatrix/}@*
  2221. Y2K tester.
  2222. @end itemize
  2223. @subheading SQL and Database Interfaces
  2224. @itemize @bullet
  2225. @item @uref{http://java.sun.com/products/jdbc/}@*
  2226. The JDBC database access API.
  2227. @item @uref{http://www.gagme.com/mysql}@*
  2228. Patch for @code{mSQL} Tcl.
  2229. @item @uref{http://www.amsoft.ru/easysql/}@*
  2230. EasySQL: An ODBC-like driver manager.
  2231. @item @uref{http://www.lightlink.com/hessling/rexxsql.html}@*
  2232. A REXX interface to SQL databases.
  2233. @item @uref{http://www.mytcl.cx/}@*
  2234. Tcl interface based on tcl-sql with many bugfixes.
  2235. @item @uref{http://www.binevolve.com/~tdarugar/tcl-sql/}@*
  2236. Tcl interface.
  2237. @end itemize
  2238. @subheading Examples of MySQL Use
  2239. @itemize @bullet
  2240. @c Added 990601
  2241. @c EMAIL: thuss@little6.com (Todd Huss)
  2242. @item @uref{http://www.little6.com/about/linux/}@*
  2243. Little6 Inc., An online contract and job finding site that is powered by
  2244. @strong{MySQL}, PHP3, and Linux.
  2245. @c Added 990521
  2246. @c EMAIL: nh@delec.com (Hillbrecht Nicole)
  2247. @item @uref{http://www.delec.com/is/products/prep/examples/BookShelf/index.html}
  2248. DELECis - A tool that makes it very easy to create an automatically generated
  2249. table documentation. They have used @strong{MySQL} as an example.
  2250. @c @item
  2251. @c Added 990531. Removed 000201 -> No answer from server
  2252. @c EMAIL: sfambro@hotmail.com (Steve Fambro)
  2253. @c @uref{http://shredder.elen.utah.edu/steve.html, Steve Fambro}
  2254. @c Uses @strong{MySQL} and webmerger. There is an employee database, and a
  2255. @c license plate database with all of the registered Utah vehicles (over
  2256. @c 1.2 million). The License plate field is indexed.....so the *searches*
  2257. @c are instantaneous.
  2258. @c Added 990521
  2259. @c EMAIL: info@worldrecords.com (Jim Rota)
  2260. @item @uref{http://www.worldrecords.com}@*
  2261. World Records - A search engine for information about music that uses
  2262. @strong{MySQL} and PHP.
  2263. @item @uref{http://www.webtechniques.com/archives/1998/01/note/}@*
  2264. A Contact Database using @strong{MySQL} and PHP.
  2265. @item @uref{http://modems.rosenet.net/mysql/}@*
  2266. Web based interface and Community Calender with PHP.
  2267. @item @uref{http://www.odbsoft.com/cook/sources.htm}@*
  2268. Perl package to generate html from a SQL table structure and for generating
  2269. SQL statements from an html form.
  2270. @item @uref{http://www.gusnet.cx/proj/telsql/}@*
  2271. Basic telephone database using @code{DBI}/@code{DBD}.
  2272. @item @uref{http://tecfa.unige.ch/guides/java/staf2x/ex/jdbc/coffee-break}@*
  2273. JDBC examples by Daniel K. Schneider.
  2274. @item @uref{http://www.spade.com/linux/howto/PostgreSQL-HOWTO-41.html}
  2275. SQL BNF
  2276. @item @uref{http://www.ooc.com/}@*
  2277. Object Oriented Concepts Inc; CORBA applications with examples in source.
  2278. @item @uref{http://www.pbc.ottawa.on.ca/}@*
  2279. DBWiz; Includes an example of how to manage cursors in VB.
  2280. @cindex Pluribus
  2281. @item @uref{http://keilor.cs.umass.edu/pluribus/}@*
  2282. Pluribus is a free search engine that learns to improve
  2283. the quality of its results over time. Pluribus works by recording
  2284. which pages a user prefers among those returned for a query. A user
  2285. votes for a page by selecting it; Pluribus then uses that knowledge
  2286. to improve the quality of the results when someone else submits the
  2287. same (or similar) query. Uses PHP and @strong{MySQL}.
  2288. @c EMAIL: paul@sword.damocles.com (Paul Bannister)
  2289. @item @uref{http://www.stopbit.com/}@*
  2290. Stopbit - A technology news site using @strong{MySQL} and PHP.
  2291. @c Added 990604
  2292. @c EMAIL: ah@dybdahl.dk
  2293. @item @uref{http://www.jokes2000.com/scripts/}@*
  2294. Example scripts at Jokes2000.
  2295. @item @uref{http://www.linuxsupportline.com/~kalendar/}@*
  2296. KDE based calendar manager - The calendar manager has both single user
  2297. (file based) and multi-user (@strong{MySQL} database) support.
  2298. @item @uref{http://tim.desert.net/~tim/imger/}@*
  2299. Example of storing/retrieving images with @strong{MySQL} and CGI.
  2300. @item @uref{http://www.penguinservices.com/scripts}@*
  2301. Online shopping cart system.
  2302. @c Added 990928 from editor@city-gallery.com
  2303. @cindex Old Photo Album
  2304. @item @uref{http://www.city-gallery.com/album/}@*
  2305. Old Photo Album - The album is a collaborative popular history of photography
  2306. project that generates all pages from data stored in a @strong{MySQL}
  2307. database. Pages are dynamically generated through a php3 interface to the
  2308. database content. Users contribute images and descriptions. Contributed images
  2309. are stored on the web server to avoid storing them in the database as BLOBs.
  2310. All other information is stored on the shared @strong{MySQL} server.
  2311. @end itemize
  2312. @subheading General Database Links
  2313. @itemize @bullet
  2314. @item @uref{http://www.pcslink.com/~ej/dbweb.html}@*
  2315. Database Jump Site
  2316. @item @uref{http://black.hole-in-the.net/guy/webdb/}@*
  2317. Homepage of the webdb-l (Web Databases) mailing list.
  2318. @item @uref{http://www.symbolstone.org/technology/perl/DBI/index.html}@*
  2319. Perl @code{DBI}/@code{DBD} modules homepage.
  2320. @item @uref{http://www.student.uni-koeln.de/cygwin/}@*
  2321. Cygwin tools. Unix on top of Windows.
  2322. @item @uref{http://dbasecentral.com/}@*
  2323. dbasecentral.com; Development and distribution of powerful and easy-to-use
  2324. database applications and systems.
  2325. @cindex Tek-Tips forums
  2326. @cindex forums, Tek-Tips
  2327. @item @uref{http://www.Tek-Tips.com}@*
  2328. Tek-Tips Forums are 800+ independent peer-to-peer non-commercial support
  2329. forums for Computer Professionals.  Features include automatic e-mail
  2330. notification of responses, a links library, and member confidentiality
  2331. guaranteed.
  2332. @item @uref{http://www.public.asu.edu/~peterjn/btree/}@*
  2333. B-Trees: Balanced Tree Data Structures
  2334. @item @uref{http://www.fit.qut.edu.au/~maire/baobab/lecture/sld001.htm}@*
  2335. A lecture about B-Trees
  2336. @end itemize
  2337. There are also many Web pages that use
  2338. @strong{MySQL}. @xref{Users}. Send any additions to this list to
  2339. @email{webmaster@@mysql.com}. We now require that you show a
  2340. @strong{MySQL} logo somewhere if you wish your site to be added.
  2341. (It is okay to have it on a ``used tools'' page or something similar.)
  2342. @cindex reporting, errors
  2343. @cindex MySQL mailing lists
  2344. @node Questions, Licensing and Support, Introduction, Top
  2345. @chapter MySQL Mailing Lists
  2346. @menu
  2347. * Mailing-list::                The @strong{MySQL} mailing lists
  2348. * Asking questions::            Asking questions or reporting bugs
  2349. * Bug reports::                 How to report bugs or problems
  2350. * Answering questions::         Guidelines for answering questions on the mailing list
  2351. @end menu
  2352. @node Mailing-list, Asking questions, Questions, Questions
  2353. @section The MySQL Mailing Lists
  2354. @cindex mailing lists
  2355. @cindex email lists
  2356. To subscribe to the main @strong{MySQL} mailing list, send a message to the
  2357. electronic mail address @email{mysql-subscribe@@lists.mysql.com}.
  2358. To unsubscribe from the main @strong{MySQL} mailing list, send a message to
  2359. the electronic mail address @email{mysql-unsubscribe@@lists.mysql.com}.
  2360. Only the address to which you send your messages is significant.  The
  2361. subject line and the body of the message are ignored.
  2362. @c the last two addresses in this paragraph are NOT @email because they
  2363. @c shouldn't be live links.
  2364. If your reply address is not valid, you can specify your address
  2365. explicitly.  Adding a hyphen to the subscribe or unsubscribe command
  2366. word, followed by your address with the @samp{@@} character in your
  2367. address replaced by a @samp{=}.  For example, to subscribe
  2368. @code{your_name@@host.domain}, send a message to
  2369. @code{mysql-subscribe-your_name=host.domain@@lists.mysql.com}.
  2370. Mail to @email{mysql-subscribe@@lists.mysql.com} or
  2371. @email{mysql-unsubscribe@@lists.mysql.com} is handled automatically by the
  2372. ezmlm mailing list processor.  Information about ezmlm is available at
  2373. @uref{http://www.ezmlm.org, The ezmlm Website}.
  2374. To post a message to the list itself, send your message to
  2375. @code{mysql@@lists.mysql.com}.  However, please @emph{do not} send mail about
  2376. subscribing or unsubscribing to @email{mysql@@lists.mysql.com}, because any
  2377. mail sent to that address is distributed automatically to thousands of other
  2378. users.
  2379. Your local site may have many subscribers to @email{mysql@@lists.mysql.com}.
  2380. If so, it may have a local mailing list, so that messages sent from
  2381. @code{lists.mysql.com} to your site are propagated to the local list. In such
  2382. cases, please contact your system administrator to be added to or dropped
  2383. from the local @strong{MySQL} list.
  2384. The following @strong{MySQL} mailing lists exist:
  2385. @table @code
  2386. @item @uref{mailto:announce-subscribe@@lists.mysql.com, announce}
  2387. This is for announcement of new versions of @strong{MySQL} and related
  2388. programs. This is a low volume list that we think all @strong{MySQL}
  2389. users should be on.
  2390. @item @uref{mailto:mysql-subscribe@@lists.mysql.com, mysql}
  2391. The main list for general @strong{MySQL} discussion. Please note that some
  2392. topics are better discussed on the more-specialized lists. If you post to the
  2393. wrong list, you may not get an answer!
  2394. @item @uref{mailto:mysql-digest-subscribe@@lists.mysql.com, mysql-digest}
  2395. The @code{mysql} list in digest form. That means you get all individual
  2396. messages, sent as one large mail message once a day.
  2397. @item @uref{mailto:bugs-subscribe@@lists.mysql.com, bugs}
  2398. On this list you should only post a full, repeatable bug report using
  2399. the @code{mysqlbug} script (if you are running on Windows, you should
  2400. include a description of the operating system and the @strong{MySQL} version).
  2401. Preferably, you should test the problem using the latest stable or
  2402. development version of @strong{MySQL} before posting!
  2403. Anyone should be able to repeat the bug by just using
  2404. @code{mysql test < script} on the included test case.  All bugs posted on
  2405. this list will be corrected or documented in the next @strong{MySQL} release!
  2406. If there are only small code changes involved, we will also post a patch that
  2407. fixes the problem.
  2408. @item @uref{mailto:bugs-digest-subscribe@@lists.mysql.com, bugs-digest}
  2409. The @code{bugs} list in digest form.
  2410. @item @uref{mailto:developer-subscribe@@lists.mysql.com, developer}
  2411. This list has been depreciated in favor of the
  2412. @uref{mailto:internals-subscribe@@lists.mysql.com, internals} list (below).
  2413. @item @uref{mailto:developer-digest-subscribe@@lists.mysql.com, developer-digest}
  2414. This list has been depreciated in favor of the
  2415. @uref{mailto:internals-digest-subscribe@@lists.mysql.com, internals-digest} list
  2416. (below).
  2417. @item @uref{mailto:internals-subscribe@@lists.mysql.com, internals}
  2418. A list for people who work on the @strong{MySQL} code. On this list one
  2419. can also discuss @strong{MySQL} development and post patches.
  2420. @item @uref{mailto:internals-digest-subscribe@@lists.mysql.com, internals-digest}
  2421. A digest version of the @uref{mailto:internals-subscribe@@lists.mysql.com, internals} list.
  2422. @item @uref{mailto:java-subscribe@@lists.mysql.com, java}
  2423. Discussion about @strong{MySQL} and Java. Mostly about the JDBC drivers.
  2424. @item @uref{mailto:java-digest-subscribe@@lists.mysql.com, java-digest}
  2425. A digest version of the @code{java} list.
  2426. @item @uref{mailto:win32-subscribe@@lists.mysql.com, win32}
  2427. All things concerning @strong{MySQL} on Microsoft operating systems such as
  2428. Win95, Win98, NT, and Win2000.
  2429. @item @uref{mailto:win32-digest-subscribe@@lists.mysql.com, win32-digest}
  2430. A digest version of the @code{win32} list.
  2431. @item @uref{mailto:myodbc-subscribe@@lists.mysql.com, myodbc}
  2432. All things about connecting to @strong{MySQL} with ODBC.
  2433. @item @uref{mailto:myodbc-digest-subscribe@@lists.mysql.com, myodbc-digest}
  2434. A digest version of the @code{myodbc} list.
  2435. @item @uref{mailto:plusplus-subscribe@@lists.mysql.com, plusplus}
  2436. All things concerning programming with the C++ API to @strong{MySQL}.
  2437. @item @uref{mailto:plusplus-digest-subscribe@@lists.mysql.com, plusplus-digest}
  2438. A digest version of the @code{plusplus} list.
  2439. @item @uref{mailto:msql-mysql-modules-subscribe@@lists.mysql.com, msql-mysql-modules}
  2440. A list about the Perl support in @strong{MySQL}.
  2441. @item @uref{mailto:msql-mysql-modules-digest-subscribe@@lists.mysql.com, msql-mysql-modules-digest}
  2442. A digest version of the @code{msql-mysql-modules} list.
  2443. @end table
  2444. You subscribe or unsubscribe to all lists in the same way as described
  2445. above.  In your subscribe or unsubscribe message, just put the appropriate
  2446. mailing list name rather than @code{mysql}.  For example, to subscribe to or
  2447. unsubscribe from the @code{myodbc} list, send a message to
  2448. @email{myodbc-subscribe@@lists.mysql.com} or
  2449. @email{myodbc-unsubscribe@@lists.mysql.com}.
  2450. There is also a german mailing list. You can find information about this
  2451. at: @uref{http://www.4t2.com/mysql}.
  2452. @cindex net etiquette
  2453. @cindex mailing lists, archive location
  2454. @cindex searching, MySQL webpages
  2455. @node Asking questions, Bug reports, Mailing-list, Questions
  2456. @section Asking Questions or Reporting Bugs
  2457. Before posting a bug report or question, please do the following:
  2458. @itemize @bullet
  2459. @item
  2460. Start by searching the @strong{MySQL} online manual at:
  2461. @*
  2462. @uref{http://www.mysql.com/documentation/manual.php}
  2463. @*
  2464. We try to keep the manual up to date by
  2465. updating it frequently with solutions to newly found problems!
  2466. @item
  2467. Search the @strong{MySQL} mailing list archives:
  2468. @*
  2469. @uref{http://www.mysql.com/documentation/}
  2470. @*
  2471. @item
  2472. You can also use @uref{http://www.mysql.com/search.html} to search all the
  2473. Web pages (including the manual) that are located at
  2474. @uref{http://www.mysql.com/}.
  2475. @end itemize
  2476. If you can't find an answer in the manual or the archives, check with your
  2477. local @strong{MySQL} expert. If you still can't find an answer to your
  2478. question, go ahead and read the next section about how to send mail to
  2479. @email{mysql@@lists.mysql.com}.
  2480. @cindex bugs, reporting
  2481. @cindex reporting, bugs
  2482. @cindex problems, reporting
  2483. @cindex errors, reporting
  2484. @cindex @code{mysqlbug} script
  2485. @cindex creating, bug reports
  2486. @cindex scripts, @code{mysqlbug}
  2487. @node Bug reports, Answering questions, Asking questions, Questions
  2488. @section How to Report Bugs or Problems
  2489. Writing a good bug report takes patience, but doing it right the first
  2490. time saves time for us and for you. A good bug report containing a full
  2491. test case for the bug will make it very likely that we will fix it in
  2492. the next release. This section will help you write your report correctly
  2493. so that you don't waste your time doing things that may not help us much
  2494. or at all.
  2495. We encourage everyone to use the @code{mysqlbug} script to generate a bug
  2496. report (or a report about any problem), if possible.  @code{mysqlbug} can be
  2497. found in the @file{scripts} directory in the source distribution, or, for a
  2498. binary distribution, in the @file{bin} directory under your @strong{MySQL}
  2499. installation directory.  If you are unable to use @code{mysqlbug}, you should
  2500. still include all the necessary information listed in this section.
  2501. The @code{mysqlbug} script helps you generate a report by determining much
  2502. of the following information automatically, but if something important is
  2503. missing, please include it with your message! Please read this section
  2504. carefully and make sure that all the information described here is included
  2505. in your report.
  2506. @cindex bug reports, email address
  2507. The normal plase to report bugs and problems is
  2508. @email{mysql@@lists.mysql.com}. If you can make a test case that clearly
  2509. shows the bug, you should post it to the @email{bugs@@lists.mysql.com}
  2510. list. Note that on this list you should only post a full, repeatable bug
  2511. report using the @code{mysqlbug} script. If you are running on Windows,
  2512. you should include a description of the operating system and the
  2513. @strong{MySQL} version.  Preferably, you should test the problem using
  2514. the latest stable or development version of @strong{MySQL} before
  2515. posting!  Anyone should be able to repeat the bug by just using
  2516. ``@code{mysql test < script}'' on the included test case or run the
  2517. shell or perl script that is included in the bug report.  All bugs
  2518. posted on the @code{bugs} list will be corrected or documented in the next
  2519. @strong{MySQL} release!  If there are only small code changes involved
  2520. to correct this problem, we will also post a patch that fixes the
  2521. problem.
  2522. Remember that it is possible to respond to a message containing too much
  2523. information, but not to one containing too little.  Often people omit facts
  2524. because they think they know the cause of a problem and assume that some
  2525. details don't matter.  A good principle is: if you are in doubt about stating
  2526. something, state it!  It is a thousand times faster and less troublesome to
  2527. write a couple of lines more in your report than to be forced to ask again
  2528. and wait for the answer because you didn't include enough information the
  2529. first time.
  2530. The most common errors are that people don't indicate the version number of
  2531. the @strong{MySQL} distribution they are using, or don't indicate what
  2532. platform they have @strong{MySQL} installed on (including the platform
  2533. version number).  This is highly relevant information, and in 99 cases out of
  2534. 100 the bug report is useless without it!  Very often we get questions like,
  2535. ``Why doesn't this work for me?'' then we find that the feature
  2536. requested wasn't implemented in that @strong{MySQL} version, or that a bug
  2537. described in a report has been fixed already in newer @strong{MySQL}
  2538. versions.  Sometimes the error is platform dependent; in such cases, it is
  2539. next to impossible to fix anything without knowing the operating system and
  2540. the version number of the platform.
  2541. Remember also to provide information about your compiler, if it is related to
  2542. the problem.  Often people find bugs in compilers and think the problem is
  2543. @strong{MySQL} related. Most compilers are under development all the time and
  2544. become better version by version.  To determine whether or not your
  2545. problem depends on your compiler, we need to know what compiler is used.
  2546. Note that every compiling problem should be regarded as a bug report and
  2547. reported accordingly.
  2548. It is most helpful when a good description of the problem is included in the
  2549. bug report.  That is, a good example of all the things you did that led to
  2550. the problem and the problem itself exactly described.  The best reports are
  2551. those that include a full example showing how to reproduce the bug or
  2552. problem. @xref{Reproducable test case}.
  2553. If a program produces an error message, it is very important to include the
  2554. message in your report! If we try to search for something from the archives
  2555. using programs, it is better that the error message reported exactly matches
  2556. the one that the program produces.  (Even the case should be
  2557. observed!) You should never try to remember what the error message was;
  2558. instead, copy and paste the entire message into your report!
  2559. If you have a problem with MyODBC, you should try to genereate a MyODBC
  2560. trace file. @xref{MyODBC bug report}.
  2561. Please remember that many of the people who will read your report will
  2562. do so using an 80-column display.  When generating reports or examples
  2563. using the @code{mysql} command line tool, you should therefore use
  2564. the @code{--vertical} option (or the @code{G} statement terminator)
  2565. for output that would exceed the available width for such a display
  2566. (for example, with the @code{EXPLAIN SELECT} statement; see the
  2567. example below).
  2568. Please include the following information in your report:
  2569. @cindex bug reports, criteria for
  2570. @itemize @bullet
  2571. @item
  2572. The version number of the @strong{MySQL} distribution you are using (for
  2573. example, @strong{MySQL} Version 3.22.22). You can find out which version you
  2574. are running by executing @code{mysqladmin version}. @code{mysqladmin} can be
  2575. found in the @file{bin} directory under your @strong{MySQL} installation
  2576. directory.
  2577. @item
  2578. The manufacturer and model of the machine you are working on.
  2579. @item
  2580. The operating system name and version. For most operating systems, you can
  2581. get this information by executing the Unix command @code{uname -a}.
  2582. @item