4
Database Administration.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 181
4.1 Con
guring MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 181
4.1.1 mysqld
Command-line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 181
4.1.2 `my.cnf'
Option Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .186
4.1.3 Installing
Many Servers on the Same Machine . . . . . . . . . . . . . . . . . . . . . .
. . . . .189
4.1.4 Running
Multiple MySQL Servers on the Same Machine . . . . . . . . . . . . . . . . .
. 190
4.2 General
Security Issues and the MySQL Access Privilege System . . . . . . . . . . .
. . . 191
4.2.1 General
Security Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .191
4.2.2 How
to Make MySQL Secure Against Crackers . . . . . . . . . . . . . . . . . . .
. . . . . . . 194
4.2.3 Startup
Options for mysqld Concerning Security . . . . . . . . . . . . . . . . . . .
. . . . . . 195
4.2.4 Security
issues with LOAD DATA LOCAL . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .196
4.2.5 What
the Privilege System Does . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .197
4.2.6 How
the Privilege System Works . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .197
4.2.7 Privileges
Provided by MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 200
4.2.8 Connecting
to the MySQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .202
4.2.9 Access
Control, Stage 1: Connection Verication . . . . . . . . . . . . . . . . . .
. . . . . . .203
4.2.10 Access
Control, Stage 2: Request Verication . . . . . . . . . . . . . . . . . . .
. . . . . . . 206
4.2.11 Causes
of Access denied Errors . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 208
4.3 MySQL
User Account Management . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .212
4.3.1 GRANT
and REVOKE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 212
4.3.2 MySQL
User Names and Passwords . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .216
4.3.3 When
Privilege Changes Take Eect . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .217
4.3.4 Setting
Up the Initial MySQL Privileges. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 218
4.3.5 Adding
New Users to MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 219
4.3.6 Limiting
user resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .222
4.3.7 Setting
Up Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .223
4.3.8 Keeping
Your Password Secure . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 224
4.3.9 Using
Secure Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .225
4.3.9.1 Basics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 225
4.3.9.2 Requirements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 225
4.3.9.3 GRANT
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .226
4.4 Disaster
Prevention and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .227
4.4.1 Database
Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .227
4.4.2 BACKUP
TABLE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 228
4.4.3 RESTORE
TABLE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .229
4.4.5 REPAIR
TABLE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 230
4.4.6 Using
myisamchk for Table Maintenance and Crash Recovery . . . . . . . . . . . . 231
4.4.6.1 myisamchk
Invocation Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .232
4.4.6.2 General
Options for myisamchk . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .233
4.4.6.3 Check
Options for myisamchk . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 234
4.4.6.4 Repair
Options for myisamchk . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .235
4.4.6.5 Other
Options for myisamchk . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .236
4.4.6.7 Using
myisamchk for Crash Recovery . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 237
4.4.6.8 How
to Check Tables for Errors . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .238
4.4.6.9 How
to Repair Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .239
4.4.6.10 Table
Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .241
4.4.7 Setting
Up a Table Maintenance Regimen . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 242
4.4.8 Getting
Information About a Table . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 242
4.5 Database
Administration Language Reference . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .247
4.5.1 OPTIMIZE
TABLE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 247
4.5.2 ANALYZE
TABLE Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .248
4.5.3 FLUSH
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 248
4.5.4 RESET
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 250
4.5.5 KILL
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .250
4.5.6 SHOW
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .251
4.5.6.1 Retrieving
information about Database, Tables, Columns, and Indexes. . .251
4.5.6.2 SHOW
TABLE STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 252
4.5.6.3 SHOW
STATUS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .253
4.5.6.4 SHOW
VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 256
4.5.6.5 SHOW
LOGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 265
4.5.6.6 SHOW
PROCESSLIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .265
4.5.6.7 SHOW
GRANTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 267
4.5.6.8 SHOW
CREATE TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 267
4.6 MySQL
Localisation and International Usage. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 267
4.6.1 The
Character Set Used for Data and Sorting. . . . . . . . . . . . . . . . . . .
. . . . . . . . .267
4.6.1.1 German
character set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 268
4.6.2 Non-English
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 269
4.6.3 Adding
a New Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 269
4.6.4 The
Character Denition Arrays . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 271
4.7 MySQL
Server-Side Scripts and Utilities . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .272
4.7.1 Overview
of the Server-Side Scripts and Utilities. . . . . . . . . . . . . . . . . .
. . . . . . . .272
4.7.2 safe_mysqld,
The Wrapper Around mysqld . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 274
4.7.3 mysqld_multi,
Program for Managing Multiple MySQL Servers . . . . . . . . . . . . .275
4.7.4 myisampack,
The MySQL Compressed Read-only Table Generator . . . . . . . 279
4.7.5 mysqld-max,
An Extended mysqld Server. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .285
4.8 MySQL
Client-Side Scripts and Utilities . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 287
4.8.1 Overview
of the Client-Side Scripts and Utilities . . . . . . . . . . . . . . . . . .
. . . . . . . .287
4.8.2 mysql,
The Command-line Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .288
4.8.3 mysqladmin,
Administrating a MySQL Server . . . . . . . . . . . . . . . . . . . . . . .
. . . . .295
4.8.4 Using
mysqlcheck for Table Maintenance and Crash Recovery . . . . . . . . . . . .297
4.8.5 mysqldump,
Dumping Table Structure and Data. . . . . . . . . . . . . . . . . . . . . .
. . . 299
4.8.6 mysqlhotcopy,
Copying MySQL Databases and Tables . . . . . . . . . . . . . . . . . . .303
4.8.7 mysqlimport,
Importing Data from Text Files . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .304
4.8.8 Showing
Databases, Tables, and Columns . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .307
4.9 The
MySQL Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 308
4.9.1 The
Error Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 308
4.9.2 The
General Query Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 309
4.9.4 The
Binary Update Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 310
4.9.5 The
Slow Query Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .311
4.10 Replication
in MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 312
4.10.1 Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 312
4.10.2 Replication
Implementation Overview . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 313
4.10.3 How
To Set Up Replication . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .314
4.10.4 Replication
Features and Known Problems . . . . . . . . . . . . . . . . . . . . . . . .
. . . .316
4.10.5 Replication
Options in `my.cnf' . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .318
4.10.6 SQL
Commands Related to Replication . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .323
4.10.7 Replication
FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 326
4.10.8 Troubleshooting
Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 331