mysql 数据库维护
数据库数据备份
-
命令行实用程序mysqldump
备份数据库内容到外部文件。
-
命令行实用程序mysqlhotcopy
从一个数据库复制所有数据(并非所有数据库引擎都支持这个实用程序)。
-
BACKUP TABLE
或者SELECT INTO OUTFILE
转储所有数据到某个外部文件。该系统文件必须不存在==?==。
数据可以用
RESTORE TABLE
来复原。
首先刷新未写数据 为了保证所有数据被写到磁盘(包括索引数据),可能需要在进行备份前使用FLUSH TABLES语句。
数据库维护
ANALYZE TABLE
,用来检查表键是否正确。
mysql> ANALYZE TABLE orders;
+--------------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+---------+----------+----------+
| crash.orders | analyze | status | OK |
+--------------+---------+----------+----------+
1 row in set (0.02 sec)
CHECK TABLE
,用来针对许多问题对表进行检查。
mysql> CHECK TABLE orders;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| crash.orders | check | status | OK |
+--------------+-------+----------+----------+
1 row in set (0.00 sec)
mysql> CHECK TABLE orders, customers;
+-----------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------------+-------+----------+----------+
| crash.orders | check | status | OK |
| crash.customers | check | status | OK |
+-----------------+-------+----------+----------+
2 rows in set (0.01 sec)
mysql> CHECK TABLE orders FAST;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| crash.orders | check | status | OK |
+--------------+-------+----------+----------+
1 row in set (0.04 sec)
mysql> CHECK TABLE orders EXTENDED;
+--------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| crash.orders | check | status | OK |
+--------------+-------+----------+----------+
1 row in set (0.00 sec)
在MyISAM表上还对索引进行检查。
CHECK TABLE支持一系列的用于MyISAM表的方式。
CHANGED检查自最后一次检查以来改动过的表,
EXTENDED执行最彻底的检查,
FAST只检查未正常关闭的表,
MEDIUM检查所有被删除的链接并进行键检验,
QUICK只进行快速扫描。
诊断启动问题
手动启动服务器,执行mysqld
命令启动。(d 的全拼应该是 daemon,是个服务。一般服务就用d结尾。)
mysql 和 mysqld 的区别
--help显示帮助——一个选项列表;
--safe-mode装载减去某些最佳配置的服务器;
--verbose显示全文本消息(为获得更详细的帮助消息与–help
联合使用);
--version显示版本信息然后退出。
查看日志文件
(mysqld命令)
-
错误日志
记录错误,包括启动错误和关闭错误以及任意关键的错误。
日志名一般为:hostname.err,在data目录中。
日志名可用
--log-error
命令行选项更改。 -
查询日志
记录所有mysql活动,用于debug很舒服。
该日志文件,可能会很快变得非常大,因此不该长期使用。
日志名一般为:hostname.log,位于data目录。
日志名可用
--log
命令行选项更改。 -
二进制日志
记录更新过数据(或可能更新过数据)的所有语句。
日志名一般为:hostname-bin,位于data目录。
日志名可用
--log-bin
命令行选项更改。mysql 5版本中添加的,以前的是更新日志。
-
缓慢查询日志
记录执行缓慢的任何查询。
对数据库优化特别有用。
日志名为:host-slow.log,位于data目录中。
日志名可用
--log-slow-queries
命令行选项更改。
FLUSH LOGS
语句,刷新和重新开始所有日志文件。