常用mysql命令行记录

此文用于记录个人常用的或者是感到疑惑的mysql命令行记录,因为平时用到的mysql实在是少,所以在此做个简要记录以观后效之用。

查看MYSQL默认端口号

1
SHOW GLOBAL VARIABLES LIKE 'port';

查询当前所在的数据库

1
SELECT DATABASE();

查看数据库中的所有用户

1
SELECT DISTINCT CONCAT('User: ''', user, '''@''',host,''':') AS quert FROM mysql.user;

创建用户

1
2
3
4
5
6
7
8
#user_name:要创建用户的名字。
#host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’。
#password:新创建用户的登陆数据库密码,如果没密码可以不写。
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
#无密码
CREATE USER 'user_name'@'host';

设置与更改用户密码

1
2
3
4
5
6
#规范语法
SET  PASSWORD  FOR  ‘username’@‘host’ = PASSWORD(‘newpassword’); 
#设置当前用户的密码:SET  PASSWORD = PASSWORD('newpassword');
SET  PASSWORD = PASSWORD(‘123456’);//实例句

撤销用户权限

1
2
3
4
5
6
REVOKE privileges ON database.tablename FROM ‘username’@‘host’;
#若是有先前的语句命令在前的前提下,下方语句才成立。
GRANT SELECT ON *.* FROM ‘test’@‘localhost’;
REVOKE SELECT ON *.* FROM ‘test’@‘localhost’;
#两者前后的命令必须一致。

授权用户

1
2
3
4
5
6
7
8
9
10
11
12
#privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
#databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。
#’username‘@‘host’:表示授权给哪个用户。
GRANT privileges ON databasename.tablename TO ‘username’@‘host’;
GRANT  select,insert  ON  zje.zje  TO ‘aaa’@‘%’;//表示给用户aaa授权,让aaa能给zje库中的zje表 实行 insert 和 select。
GRANT  ALL  ON  *.*  TO  ‘aaa’@‘%’;//表示给用户aaa授权,让aaa能给所有库所有表实行所有的权力。
#用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上“WITH GRANT OPTION”。
GRANT ALL ON *.* TO ’aaa‘@'%' WITH GRANT OPTION;

删除用户

1
2
#DROP USER ‘user_name’@‘host’
DROP USER 'test'@'localhost';

查看用户的表结构

1
2
#DESC user_name.user
DESC mysql.user;

查看某个用户的权限

1
2
3
4
5
#第一种,user='user_name'
SELECT * FROM mysql.user WHERE user='Django_votingsystem';
#第二种,不怎么好用。'user_name'@'host'。
SHOW GRANTS FOR 'Django_votingsystem'@'localhost';

mysql安装、验证等最初命令行

可参考:https://m.w3cschool.cn/mysql/mysql-install.html

参考过的文章

MySQL 5.7参考手册中文

---------------本文终---------------

文章作者:刘俊

最后更新:2019年03月28日 - 13:03

许可协议: 转载请保留原文链接及作者。