mysql日常笔记

Author Avatar
呃哦 4月 04, 2017
  • 创建数据库并指明utf8编码(否则中文乱码)
      CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    
  • 删除数据库
      DROP DATABASE 数据库名;
    
  • 创建用户
      CREATE '用户名'@'主机名' IDENTIFIED BY '密码';
      -- 主机名是用 % 表示通配符允许所有主机 localhost 表示本地主机
    
  • 用户授权
      GRANT PRIVILEGES ON 数据库名.数据库表 TO '用户名'@'主机名'
      -- 这里的PRIVILEGES 指insert delete等权限,下附权限表 ALL PRIVILEGES表示所有权限
      -- eg:
      GRANT INSERT DELETE ON 数据库名.数据库表 TO '用户名'@'主机名'
      GRANT ALL PRIVILEGES ON 数据库名.数据库表 TO '用户名'@'主机名'
    
    | 权限 | 权限级别 | 权限说明 |
    |:———————–: |:———————-: |:———————————————————————————————————————: |
    | CREATE | 数据库、表或索引 | 创建数据库、表或索引权限 |
    | DROP | 数据库或表 | 删除数据库或表权限 |
    | GRANT OPTION | 数据库、表或保存的程序 | 赋予权限选项 |
    | REFERENCES | 数据库或表 | |
    | ALTER | 表 | 更改表,比如添加字段、索引等 |
    | DELETE | 表 | 删除数据权限 |
    | INDEX | 表 | 索引权限 |
    | INSERT | 表 | 插入权限 |
    | SELECT | 表 | 查询权限 |
    | UPDATE | 存储过程 | 更新权限 |
    | CREATE VIEW | 视图 | 创建视图权限 |
    | SHOW VIEW | 视图 | 查看视图权限 |
    | ALTER ROUTINE | 存储过程 | 更改存储过程权限 |
    | CREATE ROUTINE | 存储过程 | 创建存储过程权限 |
    | EXECUTE | 存储过程 | 执行存储过程权限 |
    | FILE | 服务器主机上的文件访问 | 文件访问权限 |
    | CREATE TEMPORARY TABLES | 服务器管理 | 创建临时表权限 |
    | LOCK TABLES | 服务器管理 | 锁表权限 |
    | CREATE USER | 服务器管理 | 创建用户权限 |
    | PROCESS | 服务器管理 | 查看进程权限 |
    | RELOAD | 服务器管理 | 执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限 |
    | REPLICATION CLIENT | 服务器管理 | 复制权限 |
    | REPLICATION SLAVE | 服务器管理 | 复制权限 |
    | SHOW DATABASES | 服务器管理 | 查看数据库权限 |
    | SHUTDOWN | 服务器管理 | 关闭数据库权限 |
    | SUPER | 服务器管理 | 执行kill线程权限 |
    | USAGE | 服务器管理 | 没有权限
                                                  |
    

权限分布 可能的设置的权限
表权限 ‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’
列权限 ‘Select’, ‘Insert’, ‘Update’, ‘References’
过程权限 ‘Execute’, ‘Alter Routine’, ‘Grant’

  • 权限相关
      -- 刷新权限
      flush privileges;
      -- 查看权限
      show grants;
      -- 查看某个用户权限
      show grants for '用户名'@'主机名';
      -- 回收权限
      REVOKE DELETE ON 数据库名.表名 FROM '用户名'@'主机名';
      -- 删除用户
      DROP USER '用户名'@'主机名'
      -- 账户重命名
      RENAME USER '用户名'@'主机名' TO '新用户名'@'新主机名';
      -- 修改密码
      SET PASSWORD FOR '用户名'@'主机名' = '新密码':
      -- 查看所有用户
      SELECT User FROM mysql.user;
      -- 查看所有数据库
      SHOW DATABASES;
      -- 查看所有表名
      SHOW TABLES;
    
  • 查看数据库或表创建语句
     SHOW CREATE DATABASE 数据库名;
     SHOW CREATE TABLE 数据表名;