内容来自实验楼:MySQL 基础课程
- 账户管理语句:
1).CREATE USER语法:
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
创建一个已经使用sha256_password
认证的插件和密码设置为'new-password'
的账户'jeffrey'@'localhost'
,要求每隔180天建立一个新的密码:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED WITH sha256_password BY 'new-password'
PASSWORD EXPIRE INTERVAL 180 DAY;
2).DROP USER语法:
DROP USER user [, user] ...
3).GRANT 和 REVOKE语法:GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... [REQUIRE NONE | [{SSL| X509}] [CIPHER 'cipher' [AND]] [ISSUER 'issuer' [AND]] [SUBJECT 'subject']] [WITH with_option [with_option] ...] object_type = TABLE | FUNCTION | PROCEDURE with_option = GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] {tbl_name | * | *.* | db_name.*} FROM user [, user] ... REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
GRANT
和REVOKE
语句允许系统管理员创建MySQL用户账户,授予权限和撤销权限。
grant create on mysql to 'jeff'@'localhost';
revoke create on mysql from 'jeff'@'localhost';
grant create on table user to 'jeff'@'localhost';
revoke create on table user from 'jeff@localhost';
on 格式:数据库名.表名,“*”表示所有数据库,所有表。
4).RENAME USER 语法:
RENAME USER old_user TO new_user [, old_user TO new_user] ...
5).SET PASSWORD语法:
SET PASSWORD = PASSWORD('some password'); 为当前用户设置密码
SET PASSWORD FOR user = PASSWORD('some password'); - 表维护语句:
1).ANALYZE TABLE语法:ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
本语句用于分析和存储表的关键字分布。ANALYZE TABLE
语句会返回一个含有下列的结果集:
2).CHECK TABLE语法:CHECK TABLE tbl_name [, tbl_name] ... [option] ...列 值 Table 表名称 Op 进行分析 Msg_type 状态、错误、信息或警告之一 Msg_text 消息
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
返回结果集同上表。
3).CHECKSUM TABLE语法:CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]
报告表的校验和。
4).OPTIMIZE TABLE 语法:OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
被删除的记录被保存在链接清单中,后续的INSERT
操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE
来重新利用未使用的空间,并整理数据文件碎片。
5).REPARE TABLE语法:REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]REPAIR TABLE
用于修复被破坏的表。通常,基本上不必运行此语句。
返回结果集同上表。 - SET语法:
SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = expr | [GLOBAL | SESSION] system_var_name = expr | @@[global. | session.]system_var_name = expr
SET
用于设置不同类型的变量。 - SHOW语法:
1).SHOW CHARACTER SET [LIKE 'pattern']; 显示所有可用的字符集。
2).SHOW COLLATION [LIKE 'pattern']; 输出所有可用的字符集。
3).SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE 'pattern'];
显示在一个给定表中的各列的信息。对于视图,本语句也起作用。
4).SHOW CREATE {DATABASE | SCHEMA} db_name;
5).SHOW CREATE TABLE tbl_name;
6).SHOW {DATABASES | SCHEMAS} [LIKE 'pattern'];
7).SHOW ENGINE engine_name {LOGS | STATUS }; 显示存储引擎的日志或状态信息。
8).SHOW [STORAGE] ENGINES;
9).SHOW ERRORS [LIMIT [offset,] row_count];
SHOW COUNT(*) ERRORS;
10).SHOW GRANTS FOR user;
11).SHOW INDEX FROM tbl_name [FROM db_name];
12).SHOW INNODB STATUS;
13).SHOW [BDB] LOGS;
14).SHOW OPEN TABLES [FROM db_name] [LIKE 'pattern']; 列举当前在表缓存中被打开的非TEMPORARY
表。
15).SHOW PRIVILEGES;
16).SHOW [FULL] PROCESSLIST; 显示正在运行的线程。
17).SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern']; 提供服务器状态信息。
18).SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']; 与SHOW TABLE
的类似;不过,可以提供每个表的大量信息。
19).SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern'];
20).SHOW TRIGGERS [FROM db_name] [LIKE expr]; 列出了目前被MySQL服务器定义的触发程序。 - 其他管理语句:
1).CACHE INDEX
语法:CACHE INDEX tbl_index_list [, tbl_index_list] ... IN key_cache_name tbl_index_list: tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]
CACHE INDEX
语句把表索引分配给某个关键缓存。该语句只用于MyISAM
表。
2).FLUSH [LOCAL | NO_WRITE_TO_BINLOG] flush_option [, flush_option] ... 清除MySQL使用部分的内部缓存
3).KILL [CONNECTION | QUERY] thread_id;
每个与mysqld
的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST
语句查看哪些线程正在运行,并使用KILL thread_id
语句终止其中一个线程。
4).LOAD INDEX INTO CACHE
语法:
把一个表索引预载入到某个关键缓存中。LOAD INDEX INTO CACHE tbl_index_list [, tbl_index_list] ... tbl_index_list: tbl_name [[INDEX|KEY] (index_name[, index_name] ...)] [IGNORE LEAVES]
5).RESET reset_option [, reset_option] ...
用于清除不同的服务器操作的状态。它也作为FLUSH
语句的更强大的版本。