管理用户

mysql用户的账号和信息都存在名为mysql的MYSQL数据库中。

mysql数据库有一个 USER 表,存放着账户和密码。

1
2
USE mysql;
SELECT user FROM user;
1
CREATE USER ben IDENTIFIED BY 'your_password';

IDENTIFIED BY 为纯文本。MYSQL会自动在保存到user表前对密码进行加密,作为散列表指定口令。

GRANT和INSERT也可以添加用户。

重命名:

1
RENAME USER ben TO bforta; #bforta是个用户

删除:

1
DROP USER bforta;

更改密码

1
SET PASSWORD FOR bforta = PASSWORD("new_passw");

设置访问权限:

1
2
3
4
5
6
7
8
#查看用户账号权限
SHOW GRANTS FOR user_name;
#赋予权限
GRANT SELECT ON crashcourse.* TO bforta;
# crashcourse是个表,*即全部,表中全部内容都有了只读的访问权限

#撤销权限
REVOKE SELECT ON crashcourse.* FROM bforta;

适用范围

  • 整个服务器:GTANT ALL REVOKE ALL
  • 整个数据库: 例如 ON database.*
  • 特定表:例如 ON database.table
  • 特定列
  • 特定存储过程

权限类型:“太鸡儿多了,自己去看文档或者google好了”

提前授权:

GRANT 和 REVOKE 的账户必须已经存在,但对象没有这种要求。

所以可以在创建数据库之前授权。更加安全。

坏处是删掉数据库后权限仍然存在,需要手动清理,否则可能影响下次创建。

一些维护的东西

数据库维护

  • ANALYZE TABLE :检查表键

  • CHECK TABLE :检查很多表属性。

日志文件

  • 错误日志:hostname.err
  • 查询日志:hostname.log
  • 二进制日志:hostname-bin
  • 缓慢查询日志:hostname-slow.log

1.都在data目录里了

2.- - log命令符能更改这些文件的名字。

陌生关键字

ACTION

ASENSITIVE

CONVERT

ENUM

FORCE

GOTO

KILL

LINES

MOD

NUMERIC

OPTIMIZE

OPTION

OUTFILE

PURGE

RELEASE

RESTRICT

STARTING

START_JOIN

TERMINATED

SPATIAL

SONAME

SCHEMA

VARYING

USAGE

SQLEXCEPTION STATE WARNING