Chapter 5. Database Administration

Table of Contents

5.1. Overview of Server-Side Programs
5.2. mysqld — The MySQL Server
5.2.1. mysqld Command Options
5.2.2. Server System Variables
5.2.3. Using System Variables
5.2.4. Server Status Variables
5.2.5. The Server SQL Mode
5.2.6. The MySQL Server Shutdown Process
5.2.7. MySQL Server-Side Help Support
5.3. The mysqld-max Extended MySQL Server
5.4. MySQL Server Startup Programs
5.4.1. mysqld_safe — MySQL Server Startup Script
5.4.2. mysql.server — MySQL Server Startup Script
5.4.3. mysqld_multi — Manage Multiple MySQL Servers
5.5. mysqlmanager — The MySQL Instance Manager
5.5.1. Starting the MySQL Server with MySQL Instance Manager
5.5.2. Connecting to the MySQL Instance Manager and Creating User Accounts
5.5.3. MySQL Instance Manager Command Options
5.5.4. MySQL Instance Manager Configuration Files
5.5.5. Commands Recognized by the MySQL Instance Manager
5.6. Installation-Related Programs
5.6.1. mysql_fix_privilege_tables — Upgrade MySQL System Tables
5.6.2. mysql_upgrade — Check Tables for MySQL Upgrade
5.7. General Security Issues
5.7.1. General Security Guidelines
5.7.2. Making MySQL Secure Against Attackers
5.7.3. Security-Related mysqld Options
5.7.4. Security Issues with LOAD DATA LOCAL
5.7.5. How to Run MySQL as a Normal User
5.8. The MySQL Access Privilege System
5.8.1. What the Privilege System Does
5.8.2. How the Privilege System Works
5.8.3. Privileges Provided by MySQL
5.8.4. Connecting to the MySQL Server
5.8.5. Access Control, Stage 1: Connection Verification
5.8.6. Access Control, Stage 2: Request Verification
5.8.7. When Privilege Changes Take Effect
5.8.8. Causes of Access denied Errors
5.8.9. Password Hashing as of MySQL 4.1
5.9. MySQL User Account Management
5.9.1. MySQL Usernames and Passwords
5.9.2. Adding New User Accounts to MySQL
5.9.3. Removing User Accounts from MySQL
5.9.4. Limiting Account Resources
5.9.5. Assigning Account Passwords
5.9.6. Keeping Your Password Secure
5.9.7. Using Secure Connections
5.10. Backup and Recovery
5.10.1. Database Backups
5.10.2. Example Backup and Recovery Strategy
5.10.3. Point-in-Time Recovery
5.10.4. Table Maintenance and Crash Recovery
5.11. MySQL Localization and International Usage
5.11.1. The Character Set Used for Data and Sorting
5.11.2. Setting the Error Message Language
5.11.3. Adding a New Character Set
5.11.4. The Character Definition Arrays
5.11.5. String Collating Support
5.11.6. Multi-Byte Character Support
5.11.7. Problems With Character Sets
5.11.8. MySQL Server Time Zone Support
5.12. MySQL Server Logs
5.12.1. The Error Log
5.12.2. The General Query Log
5.12.3. The Binary Log
5.12.4. The Slow Query Log
5.12.5. Server Log Maintenance
5.13. Running Multiple MySQL Servers on the Same Machine
5.13.1. Running Multiple Servers on Windows
5.13.2. Running Multiple Servers on Unix
5.13.3. Using Client Programs in a Multiple-Server Environment
5.14. The MySQL Query Cache
5.14.1. How the Query Cache Operates
5.14.2. Query Cache SELECT Options
5.14.3. Query Cache Configuration
5.14.4. Query Cache Status and Maintenance

This chapter covers topics that deal with administering a MySQL installation:

5.1. Overview of Server-Side Programs

The MySQL server, mysqld, is the main program that does most of the work in a MySQL installation. The server is accompanied by several related scripts that perform setup operations when you install MySQL or that assist you in starting and stopping the server. This section provides an overview of the server and related programs. The following sections provide more detailed information about each of these programs.

Each MySQL program takes many different options. Most programs provide a --help option that you can use to get a description of the program's different options. For example, try mysqld --help.

You can override default option values for MySQL programs by specifying options on the command line or in an option file. Section 4.3, “Specifying Program Options”.

The following list briefly describes the MySQL server and server-related programs:

There are several other programs that are run on the server host:

  • make_binary_distribution

    This program makes a binary release of a compiled MySQL. This could be sent by FTP to /pub/mysql/upload/ on ftp.mysql.com for the convenience of other MySQL users.