第27章 全球化和本地化
第28章 安全管理
28.1 访问控制
- 多数用户只需要对表进行读和写,少数用户需要创建和删除表
- 某些用户可能只需要读表,而不需要更新表(只读不写)
- 通过存储过程让用户访问数据,而不是让其直接访问数据
- 防止无意的错误
- 不要使用root
28.2 管理用户
- 创建用户帐号 INSERT或GRANT
CREATE USER username IDENTIFIED BY passwordstring;
- 重命名用户帐号
RENAME USER username TO new_username;
- 删除用户帐号
DROP USER username;
- 设置访问权限
- 需要给出的信息
- 要授予的权限
- 被授予访问权限的数据库或表
- 用户名
- 需要给出的信息
- 添加权限
GRANT SELECT ON database_name.* TO username;
- 查看权限设置
SHOW GRANT FOR username;
- 撤销权限 REVOKE
REVOKE SELECT ON database_name.* TO username;
- 更改口令
SET PASSWORD FOR username = Password(new_password_str);
SET PASSWORD = Password(new_password_str); 设置自己的口令
第29章 数据库维护
29.1 备份数据
- 使用命令行实用程序mysqldump转储所有的数据库内容到某个外部文件。
- 可用mysqlhotcopy从一个数据库复制所有数据(并不是所有的数据库引擎都支持这个实用程序)
- 可用MySQL的BACKUP TABLE或SELECT INTO OUTFILE转储所有数据到某个外部文件。 使用RESTORE TABLE来复原。
- 首先刷新未写数据
- 为了保证所有数据被写到磁盘(包括索引数据),可能需要在备份前使用FLUSH TABLES语句。
- 首先刷新未写数据
29.2 进行数据库维护
- ANALYZE TABLE 用来检查表键是否正确。
- CHECK TABLE 用来针对许多问题对表进行检查
- OPTIMIZE TABLE 用来收回表所用的空间(当从一个表中删除大量数据时),从而优化表的性能。
29.3 诊断启动问题
- mysqld
- –help
- –safe-mode
- –verbose
- –version
29.4 查看日志文件
- 错误日志。 包含启动和关闭问题以及任意关键错误的细节。
- 通常名为hostname.err,位于data目录中。
- 查询日志。 记录所有MySQL活动。
- 通常名为hostname.log,位于data目录中。
- 二进制日志。记录(可能)更新过数据的所有语句。
- 通常名为hostname-bin,位于data目录中。
第30章 改善性能
- 总是有不止一种方法编写同一条SELECT语句。应该试验联结、并、子查询等,找出最佳的方法。
- 当SELECT语句中有一系列复杂的OR条件时,通过使用多条SELECT语句和UNOIN,能有极大的性能改进。
- 最重要的规则是,每条规则在某些条件下都会被打破。