很多时候由于主机只供自己使用,没有必要安装phpMyAdmin对MySQL数据库进行管理,所以我们完全可以利用MySQL的命令行模式来对数据库进行操作,今天就总结一下利用命令行新建、授权、删除用户的方法。

提示:授权用户和修改用户密码需要MySQL的root权限,操作全部在Windows中的命令提示符(cmd)中进行。

我们以用户”exampleuser”、数据库”exampledb”和其中的一个表”exampletable”作为例子。

1.新建用户

//登录MySQL
@>mysql -u root -p
@>(输入root密码)
//创建用户
mysql> insert into mysql.user(Host,User,Password) values('localhost','exampleuser',password('abcd1234'));
//刷新系统权限表
mysql>flush privileges;
//现在,一个名为exampleuser,密码为:abcd1234的用户就创建完毕了。
//退出后登录一下
mysql>exit;
@>mysql -u exampleuser -p
@>(输入exampleuser密码)

2.授权用户

//登录MYSQL(有ROOT权限的用户),这里以root为例。
@>mysql -u root -p
@>(输入root密码)
//创建一个数据库
mysql>create database exampledb;
//授权本地用户exampleuser拥有数据库exampledb(所有表)的所有权限
@>grant all privileges on exampledb.* to exampleuser@localhost identified by 'abcd1234';
//刷新系统权限表
mysql>flush privileges;
//以下是这个命令的语法:
mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘密码’;
//权限1,权限2,…权限n代表select, insert, update, delete, create, drop, index, alter, grant, references, reload, shutdown, process, file等14个权限,将你需要授权的权限写入即可,例如授权exampleuser可以通过本地对exampledb有select,update的操作权限:
mysql>grant select,update on exampledb.* to exampleuser@localhost identified by 'abcd1234';
//如要授予所有权限,请用”all privileges”或者”all”代替”权限1,权限2,…权限n”作为命令,表示赋予该用户全部权限,例如授权exampleuser可以通过本地对exampledb有所有的操作权限:
mysql>grant all privileges on exampledb.* to exampleuser@localhost identified by 'abcd1234';
//如要授予操作所有数据库的权限。请用”*.*”替换”数据库名称.表名称”作为命令,表示赋予改用户操作服务器上所有数据库的所有表的权限,例如授权exampleuser可以通过本地对所有数据库有所有的操作权限:
mysql>grant all privileges on *.* to exampleuser@localhost identified by 'abcd1234';
//如要授予操作数据库中某个表的权限。请用”数据库名称.表名称”作为命令,表示赋予该用户操作这个表名称的权限,例如授权exampleuser可以通过本地对exampledb的exampletable表有所有的操作权限:
mysql>grant all privileges on exampledb.exampletable to exampleuser@localhost identified by 'abcd1234';
//如果只允许本地用户进行操作,请用”用户名@localhost”作为命令,表示赋予本机用户权限,但如果要开启远程MySQL,请用”用户名@用户地址”作为命令;用户地址可以是IP、机器名、域名,也可以是”%”,表示从任何地址都可以连接,例如授权exampleuser可以通过123.123.123.123对exampledb有所有的操作权限:
mysql>grant all privileges on exampledb.* to exampleuser@123.123.123.123 identified by 'abcd1234';
//PS:如果要授权多个IP地址,只需替换IP多执行几次这个命令即可,不可用IP以IP1,IP2,…,IPN等形式来授予权限。
//注意:‘密码’一项不能为空,否则将会创建失败。
//对了,操作结束别忘了刷新系统权限表:
mysql>flush privileges;

3.删除用户

//登录MYSQL(有ROOT权限的用户),这里以root为例。
@>mysql -u root -p
@>(输入root密码)
//删除用户(以修改本地用户exampleuser为例)
mysql>DELETE FROM user WHERE User="exampleuser" and Host="localhost";
mysql>flush privileges;

4.修改指定用户密码

//登录MYSQL(有ROOT权限的用户),这里以root为例。
@>mysql -u root -p
@>(输入root密码)
//修改指定用户的密码(以修改本地用户exampleuser的密码为abcd1234为例)
mysql>update mysql.user set password=password('abcd1234') where User="exampleuser" and Host="localhost";
mysql>flush privileges;
//还是那句老话,不要忘了执行该命令,否则密码修改将不能生效)

以上都是山顶洞网上部落格这两天在操作MySQL数据库中学习并理解到的相关命令,如果有不正确或者理解错误的地方欢迎批评指正!