MySQL常用指令

修改密码方法:

  1. 用UPDATE直接编辑user表:
use mysql;
update user set authentication_string=password('123') where user='root' and host = '%';
flush privileges;
  1. MySQL指令修改用户密码
mysql> set password for root@localhost = password(‘321’);
mysql> flush privileges;
  1. 终端直接修改密码
// 123为原密码,321为新密码, 需要有管理员权限
mysqladmin -uroot -p123 password 321

忘记root密码:

  1. 关闭正在运行的MySQL服务;
net stop mysql
  1. 打开DOS窗口,转动mysql\bin目录;

  2. 输入mysqld --skip-grant-tables 回车。 --skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。

mysqld --skip-grant-tables
  1. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),输入mysql回车,如果成功,将出现MySQL提示符 >。

  2. 连接权限数据库: use mysql; 。

  3. 改密码:update user set authentication_string=password(“root”) where user=“root”;(别忘了最后加分号) 。

mysql> use mysql;
mysql> update user set authentication_string=password(“123456”) where user=“root”;
mysql> flush privileges;
  1. 刷新权限(必须步骤):flush privileges;

基本指令

//关闭服务
net stop mysql;
   
//启动服务
net start mysql;
   
//登录mysql, xxx为用户名, yyy为密码
mysql -uxxx -pyyy
//创建数据库, xxx为数据库名
mysql> create database xxx;
   
//查看mysql中有哪些数据库
mysql> show databases;
   
//切换数据库, xxx为数据库名
mysql> use xxx;
   
//查看该库中的有哪些表
mysql> show tables;
   
//查看表结构, xxx为表名
mysql> describe xxx;

创建用户

//查看用户组
mysql> use mysql;

mysql> select user, host from user;

//主机名:默认值为%,表示这个用户可以从任何主机连接Mysql服务器
//密码:可以省略,表示无密码登录
//create user 用户名[@主机名] [identified by '密码'];

mysql> create user 'test2'@'localhost' identified by '123';

mysql> create user 'test3'@% identified by '123';

mysql> create user 'test4'@'192.168.11.%' identified by '123';

mysql> flush privileges;

用户授权

//priveleges:权限列表,可以是all,表示所有权限,也可以是selectupdate等权限,多个权限之间用逗号分开。
//ON:用来指定权限针对哪些库和表,格式为数据库.表名 ,点号前面用来指定数据库名,点号后面用来指定表名,*.* 表示所有数据库所有表。
//TO:表示将权限赋予某个用户, 格式为username@host,@前面为用户名,@后面接限制的主机,可以是 IP、IP 段、域名以及%%表示任何地方。
//WITH GRANT OPTION:这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定 WITH GRANT OPTION 选项导致后来该用户不能使用 GRANT 命令创建用户或者给其它用户授权。备注:可以使用 GRANT 重复给用户添加权限,权限叠加,比如你先给用户添加一个 select 权限,然后又给用户添加一个 insert 权限,那么该用户就同时拥有了selectinsert权限。

mysql> grant privileges ON database.table TO 'username'[@'host'] [with grant option]
//给test1用户授权可以操作所有库所有权限,相当于全局数据库管理员权限dba
mysql> grant all on *.* to 'test1'@‘%’;
   
//test1用户可以对 seata 库中所有的表执行 select
mysql> grant select on seata.* to 'test1'@'%';
   
//test1用户可以对 seata 库中所有的表执行 selectupdate
mysql> grant select,update on seata.* to 'test1'@'%';
   
//test1用户只能查询mysql.user表的user, host字段
mysql> grant select(user,host) on mysql.user to 'test1'@'localhost';

查看用户权限

//主机可以省略,默认值为%
//show grants for '用户名'[@'主机']
mysql> show grants for 'test1'@'localhost';

//查看当前用户的权限
mysql> show grants;

撤销用户权限

//可以先通过show grants命令查询一下用户对于的权限
//然后使用revoke命令撤销用户对应的权限
//revoke privileges ON database.table FROM '用户名'[@'主机'];
mysql> revoke select(host) on mysql.user from test1@localhost;

删除用户

//drop user '用户名'[@‘主机’]
//drop的方式删除用户之后,用户下次登录就会起效。
mysql> drop user test1@localhost;
   
//通过删除 mysql.user 表数据的方式删除
mysql> delete from user where user='用户名' and host='主机';
mysql> flush privileges;
posted @   云端跑男  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示