管理

用户

mysql 库中的 user 表包含了当前所有用户, db 表中包含了用户对于数据库的权限.

select * from mysql.user;select * from mysql.db;

https://i.imgur.com/82l9Phu.png

https://i.imgur.com/itzg72S.png

我们可以使用 insert 向其中插入数据来添加新用户, 然后对 db 添加权限. 最后别忘了调用 flush privileges; 使改动生效.

show variables

mysql 的系统变量分为两种, 全局变量会话变量. 全局变量进程生命周期的, mysql 重启后就丢失了. 同时, 全局变量设置后, 只有从此以后开始的新连接才生效. 因此, 已经连接的会话不会有效果, 即便是当前执行语句所在会话都一样没有效果. 全局变量使用 set @@global.xxx=...; 设置, 通过 select @@global.xxx; 读取.

会话变量生命周期为当前连接, 断开重连就失效了. 会话使用 set @@session.xxx=...; 设置, 通过 select @@session.xxx; 读取. 其中 session. 是可选的. session 也可以使用 local 替换, 两者等价.

show variables 命令用于查看 mysql 服务的各项配置信息. 其本质是读取了全局或会话变量, 并以 table 的形式展现出来. 例如 show variables where Variable_name='time_zone'; 等价于 select @@time_zone.

在 variables 中, 大部分变量都是可读可写的, 不过也有部分是只读的.

数据库存储路径

# mysql 运行目录
select @@basedir;

# 数据存储目录
select @@datadir;

时区

# 代表 mysql 启动时的操作系统时区. 只读
select @@system_time_zone;

# 显示当前时区
select @@time_zone;

当我们查询 UTC 时区的表时, 可以临时修改时区(set @@time_zone='...';), 这样显示的时间就是当地时区时间了.

查看用户的授权信息

show grants;

show grants for 'xxx';

时间