MySQL基础关键_013_常用 DBA 命令

目 录

[一、MySQL 用户信息存储位置](#一、MySQL 用户信息存储位置)

二、新建用户

1.创建本地用户

2.创建外网用户

三、用户授权

1.说明

2.实例

四、撤销授权

五、修改用户密码

六、修改用户名、主机名/IP地址

七、删除用户

八、数据备份

1.导出数据

2.导入数据

(1)方式一

(2)方式二


一、MySQL 用户信息存储位置

存储在 mysql 数据库下的 user 表内。

sql 复制代码
-- 展示数据库
 show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

-- 使用 mysql 数据库
use mysql;

-- 展示表
show tables;

-- 查询 user 表信息
select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

二、新建用户

1.创建本地用户

sql 复制代码
-- 创建用户名为"java01",密码为"javagood"的本地用户
create user 'java01'@'localhost' identified by 'javagood';

2.创建外网用户

sql 复制代码
-- 创建用户名为"java02",密码为"javagood"的外网用户
create user 'java02'@'%' identified by 'javagood';

三、用户授权

1.说明

  1. 语法格式 :【grant权限1, 权限2,... on 数据库名.表名 to '用户名'@'主机名/IP地址';】;
  2. 权限 :
    1. 所有权限:all privileges;
    2. 细粒度权限:select、insert、update、delete、create、alert、drop、index、usage(登录权限)、reload。
  3. 数据库名和表名可以使用【*】,分别代表:所有数据库、所有表;
  4. 授权后,使用【flush privileges 】刷新权限;
  5. 查看某用户权限:【show grants for '用户名'@'主机名/IP地址';】;
  6. 允许被授权用户再为其他用户授权 :【grant权限1, 权限2,... on 数据库名.表名 to '用户名'@'主机名/IP地址' with grant option;】。

2.实例

sql 复制代码
-- 为"java01"用户授予对所有库、表的"select、insert、update、delete、create"权限
grant select, insert, update, delete, create on *.* to 'java01'@'localhost';

-- 刷新权限
flush privileges;

-- 查看"java01"的权限
show grants for 'java01'@'localhost';

四、撤销授权

  1. 语法格式:【revoke 权限1, 权限2,... on 数据库名.表名 from '用户名'@'主机名/IP地址';】;
  2. 撤销后,使用【flush privileges 】刷新权限;
  3. 撤销时的数据库名和表名需要与授权时一致。
sql 复制代码
-- 撤销"java01"的 create 和 delete 权限
revoke create, delete on *.* from 'java01'@'localhost';

-- 刷新权限
flush privileges;

-- 查看"java01"的权限
show grants for 'java01'@'localhost';

五、修改用户密码

  1. MySQL 8 语法格式:【alter user '用户名'@'主机名/IP地址' identified by '新密码';】;
  2. 修改密码后,使用【flush privileges 】刷新权限。
sql 复制代码
-- 将"java01"的密码修改为"123"
alter user 'java01'@'localhost' identified by '123';

-- 刷新权限
flush privileges;

六、修改用户名、主机名/IP地址

  1. 语法格式:【rename user '原用户名'@'主机名/IP地址' to '新用户名'@'主机名/IP地址';】;
  2. 修改用户名后,使用【flush privileges 】刷新权限。
sql 复制代码
-- 修改"java01"用户名为"jason"
rename user 'java01'@'localhost' to 'jason'@'localhost';

-- 刷新权限
flush privileges;

七、删除用户

  1. 语法格式:【drop user '用户名'@'主机名/IP地址';】;
  2. 删除用户后,使用【flush privileges 】刷新权限。
sql 复制代码
-- 删除"java02"和"jason"用户
drop user "java02"@"%";
drop user "jason"@"localhost";

-- 刷新权限
flush privileges;

八、数据备份

1.导出数据

  1. 在登录 MySQL 之前操作;
  2. 语法格式 :【mysqldump 数据库名 表名 > 路径+文件名.sql -u用户名 -p密码 --default-character-set=utf8】;
  3. 导出数据库中的全部表,则不写表名。
sql 复制代码
-- 导出 test 数据库中的全部表
mysqldump test > D:/test.sql -uroot -proot --default-character-set=utf8

-- 为保证之后的导入,在此处先删除 MySQL 内的 test 数据库
drop database if exists test;

2.导入数据

(1)方式一

  1. 在登录 MySQL 之前操作;
  2. 需要事前建立好对应数据库;
  3. 语法格式 :【mysql 数据库名 < 路径+文件名.sql -u用户名 -p密码 --default-character-set=utf8】。
sql 复制代码
-- 事先在 MySQL 内建立 test 空白数据库
create database test;

-- 然后退出 MySQL 
quit

-- 导入 test.sql
mysql test < D:/test.sql -uroot -proot --default-character-set=utf8

-- 为保证之后的导入,在此处先删除 MySQL 内的 test 数据库
drop database if exists test;

(2)方式二

  1. 在登录 MySQL 之后操作;
  2. 语法格式:【source 路径+文件名.sql;】。
sql 复制代码
-- 创建 test 空白数据库
create database test;

-- 使用 test
use test

-- 导入 test.sql
source D:/test.sql;
相关推荐
SelectDB技术团队37 分钟前
Snowflake 的开源替代怎么选:能力对照、三条部署路径与迁移执行
大数据·数据库·云原生·开源·snowflake·apache doris
Elastic 中国社区官方博客39 分钟前
告别繁琐控制台:Kabanos 如何将 MongoDB Compass 的易用性带入 Elasticsearch
大数据·数据库·mongodb·elasticsearch·搜索引擎·全文检索
京东云开发者1 小时前
当我谈数据库高可用时我谈些什么
数据库
梦影_1 小时前
MySQL进阶教程(一)—— 储存过程与触发器(上)
开发语言·数据库·后端·sql·mysql·中间件
星禾元亨2 小时前
用结构化数据与干净实体信号,让技术内容被 AI 搜索引擎稳定引用
数据库·人工智能·自动化·创业创新
stark张宇2 小时前
库存扣减的“锁”事:悲观锁、乐观锁、分布式锁
redis·分布式·mysql
底层玩家老张2 小时前
45:1压缩、19.1倍查询:1956亿行时序数据复盘
数据库·经验分享·时序数据库·存储压缩·写入优化
qq_白羊座2 小时前
口头说的 JSON 和 MySQL 里的 JSON
数据库·mysql·json
Shaoshing2 小时前
多表查询
数据库
不爱学英文的码字机器2 小时前
从Q1迁到T1,同一个编号已经换了含义
前端·数据库·microsoft