Mysql 常用命令

Eric 2021年08月08日 1,213次浏览

创建用户并授权

CREATE USER 'halo'@'%' IDENTIFIED BY 'root@123456';
GRANT ALL PRIVILEGES ON halo.* TO 'halo'@'%';

授权

grant all privileges on zhangsanDb.* to zhangsan@'%' identified by 'zhangsan';
flush privileges;

privilegesCode 表示授予的权限类型,常用的有以下几种类型[1]:

  • all privileges:所有权限。
  • select:读取权限。
  • delete:删除权限。
  • update:更新权限。
  • create:创建权限。
  • drop:删除数据库、数据表权限。

dbName.tableName 表示授予权限的具体库或表,常用的有以下几种选项:

  • .:授予该数据库服务器所有数据库的权限。
  • dbName.*:授予dbName数据库所有表的权限。
  • dbName.dbTable:授予数据库dbName中dbTable表的权限。

username@host 表示授予的用户以及允许该用户登录的IP地址。其中Host有以下几种类型:

  • localhost:只允许该用户在本地登录,不能远程登录。
  • %:允许在除本机之外的任何一台机器远程登录。
  • 192.168.52.32:具体的IP表示只允许该用户从特定IP登录。
  • password 指定该用户登录时的面。

flush privileges 表示刷新权限变更。

查询授权

show grants for 'zhangsan';

修改密码

update mysql.user set password = password('password1') where user = 'zhangsan' and host = '%';
flush privileges;

删除用户

drop user zhangsan@'%';

查看修改时区

-- 查看时区
show variables like '%time_zone%';
-- 时区设置为 +8
SET time_zone='+8:00'

修改 my.cnf 文件

[mysqld]
# 增加如下一行
default-time-zone = '+08:00'

将时间设置为自动更新

CREATE TABLE test (
  id int NOT NULL,
  name varchar(255),
  update_time timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) COMMENT="";

update_time 字段自动更新