26管理事务处理
事务管理可以用来维护数据库的完整性,它保证成批的MYSQL操作要么完全执行,要不完全不执行。事务处理是一种机制,用来管理必须成批执行的MYSQL操作,以保证数据库不包含不完整的操作结果。利用事务处理,可以保证一组操作不会中途终止。如果没有错误发生,整组语句提交给数据库表。如果发生错误,则进行回退以恢复数据库到某个已知且安全的状态。
事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退。
标识事务的开始
START TRANSACTION;
回退撤销MYSQL语句ROLLBACK只能在一个事务处理内使用
SELECT * FROM ordertotals;//显示此表不为空
START TRANSACTION; //事务开始;
DELETE FROM ordertotals; //删除所有行
SELECT * FROM ordertotals; //验证此表为空
ROLLBACK;//回退所有行
SELECT * FROM ordertotals;//显示该表不为空
一般都是提交操作自动进行(隐含提交)COMMIT语句
START TRANSACTION
DELETE FROM orderitems WHERE order_num = 200010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT;
回退到占位符SAVRPOINT,创建占位符,取名唯一
SAVEPOINT delete1;
回退到保留点
ROLLBACK TO delete1;
保留点在事务处完成后自动释放。
更改默认的提交行为
SET autocommit = 0;
27 全球化和本地化
字符串为字母和符号的集合;编码为每个字符集成员的内部标识;校对为规定字符如何比较的指令。
查看字符集完整列表
SHOW CHARACTER SET;
查看所支持校对完整列表
SHOW COLLATION
确定所用的字符集和校对
SHOW VARIABLES LIKE 'character%''
SHOW VARIABLES LIKE 'cllaction%'
28 安全管理
MYSQL服务器的安全基础是:用户应该对他们需要的数据有适当的访问权,既不能多也不能少。访问控制用于管理访问控制需要创建和管理的用户账号。
直接访问所有用户账号
USE mysql;
SELECT user FROM user;
创建用户账号
CREATE USER ben IDENTIFIED BY 'p@$$w0rd';
重新命名一个用户账号
RENAME USER ben TO beforta;
删除用户账号
DROP USER beforta;
查看授予用户的访问权限
SHOW GRANTS FOR beforta;
授予权限
GRANT SELECT ON crashcourse.* TO bforta;//允许用户在crashcourse.*上使用SELECT
撤销某一权限
REVOKR SELECT ON crashcourse.* FROM bforta;
更改用户口令
SET PASSWORD FOR bforta = Password('n3w p@$$w0rd')
29 数据库维护
查看表键是否正确
ANALYZE TABLE orders;
刷新和重新开始所有日志文件
FLUSH LOGS
30 改善性能