[Database] MySql 常用操作

MySql常用操作

联接数据库
mysql -u root -p

创建用户:
GRANT insert, update ON testdb.* TO user1@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
CREATE USER user2 IDENTIFIED BY 'password';

分配权限:
GRANT select ON testdb.* TO user2;

查看权限:
SHOW GRANTS FOR user1;

修改密码:
SET PASSWORD FOR user1 = PASSWORD('newpwd');
SET PASSWORD = PASSWORD('newpwd');

移除权限:
REVOKE all ON *.* FROM user1;

删除用户:
DROP USER user1;

数据库列表:
SHOW DATABASES;

数据表列表:
SHOW TABLES;

当前数据库:
SELECT DATABASE();

当前用户:
SELECT USER();

数据表结构:
DESCRIBE table1;

刷新权限:
FLUSH PRIVILEGES;

GRANT 语法:
GRANT privileges (columns)
    ON what
    TO user IDENTIFIED BY "password"
    WITH GRANT OPTION

权限列表:
    * ALTER: 修改表和索引。
    * CREATE: 创建数据库和表。
    * DELETE: 删除表中已有的记录。
    * DROP: 抛弃(删除)数据库和表。
    * INDEX: 创建或抛弃索引。
    * INSERT: 向表中插入新行。
    * REFERENCE: 未用。
    * SELECT: 检索表中的记录。
    * UPDATE: 修改现存表记录。
    * FILE: 读或写服务器上的文件。
    * PROCESS: 查看服务器中执行的线程信息或杀死线程。
    * RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
    * SHUTDOWN: 关闭服务器。
    * ALL: 所有权限,ALL PRIVILEGES同义词。
    * USAGE: 特殊的 "无权限" 权限。

用户账户包括 "username" 和 "host" 两部分,后者表示该用户被允许从何地接入。
user1@'%' 表示任何地址,默认可以省略。还可以是 "user1@192.168.1.%"、"user1@%.abc.com" 等。
数据库格式为 db@table,可以是 "test.*" 或 "*.*",前者表示 test 数据库的所有表,后者表示所有数据库的所有表。
子句 "WITH GRANT OPTION" 表示该用户可以为其他用户分配权限。

原文地址:https://www.cnblogs.com/abeen/p/1770888.html