MySQL基础关键_013_常用 DBA 命令
目 录
一、MySQL 用户信息存储位置
二、新建用户
1.创建本地用户
2.创建外网用户
三、用户授权
1.说明
2.实例
四、撤销授权
五、修改用户密码
六、修改用户名、主机名/IP地址
七、删除用户
八、数据备份
1.导出数据
2.导入数据
(1)方式一
(2)方式二
一、MySQL 用户信息存储位置
存储在 mysql 数据库下的 user 表内。
-- 展示数据库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.创建本地用户
-- 创建用户名为“java01”,密码为“javagood”的本地用户
create user 'java01'@'localhost' identified by 'javagood';
2.创建外网用户
-- 创建用户名为“java02”,密码为“javagood”的外网用户
create user 'java02'@'%' identified by 'javagood';
三、用户授权
1.说明
- 语法格式:【grant[权限1, 权限2,…] on 数据库名.表名 to '用户名'@'主机名/IP地址';】;
- 权限:
- 所有权限:all privileges;
- 细粒度权限:select、insert、update、delete、create、alert、drop、index、usage(登录权限)、reload。
- 数据库名和表名可以使用【*】,分别代表:所有数据库、所有表;
- 授权后,使用【flush privileges】刷新权限;
- 查看某用户权限:【show grants for '用户名'@'主机名/IP地址';】;
- 允许被授权用户再为其他用户授权:【grant[权限1, 权限2,…] on 数据库名.表名 to '用户名'@'主机名/IP地址' with grant option;】。
2.实例
-- 为“java01”用户授予对所有库、表的“select、insert、update、delete、create”权限
grant select, insert, update, delete, create on *.* to 'java01'@'localhost';-- 刷新权限
flush privileges;-- 查看“java01”的权限
show grants for 'java01'@'localhost';
四、撤销授权
- 语法格式:【revoke [权限1, 权限2,…] on 数据库名.表名 from '用户名'@'主机名/IP地址';】;
- 撤销后,使用【flush privileges】刷新权限;
- 撤销时的数据库名和表名需要与授权时一致。
-- 撤销“java01”的 create 和 delete 权限
revoke create, delete on *.* from 'java01'@'localhost';-- 刷新权限
flush privileges;-- 查看“java01”的权限
show grants for 'java01'@'localhost';
五、修改用户密码
- MySQL 8 语法格式:【alter user '用户名'@'主机名/IP地址' identified by '新密码';】;
- 修改密码后,使用【flush privileges】刷新权限。
-- 将“java01”的密码修改为“123”
alter user 'java01'@'localhost' identified by '123';-- 刷新权限
flush privileges;
六、修改用户名、主机名/IP地址
- 语法格式:【rename user '原用户名'@'主机名/IP地址' to '新用户名'@'主机名/IP地址';】;
- 修改用户名后,使用【flush privileges】刷新权限。
-- 修改“java01”用户名为“jason”
rename user 'java01'@'localhost' to 'jason'@'localhost';-- 刷新权限
flush privileges;
七、删除用户
- 语法格式:【drop user '用户名'@'主机名/IP地址';】;
- 删除用户后,使用【flush privileges】刷新权限。
-- 删除“java02”和“jason”用户
drop user "java02"@"%";
drop user "jason"@"localhost";-- 刷新权限
flush privileges;
八、数据备份
1.导出数据
- 在登录 MySQL 之前操作;
- 语法格式:【mysqldump 数据库名 表名 > 路径+文件名.sql -u用户名 -p密码 --default-character-set=utf8】;
- 导出数据库中的全部表,则不写表名。
-- 导出 test 数据库中的全部表
mysqldump test > D:/test.sql -uroot -proot --default-character-set=utf8-- 为保证之后的导入,在此处先删除 MySQL 内的 test 数据库
drop database if exists test;
2.导入数据
(1)方式一
- 在登录 MySQL 之前操作;
- 需要事前建立好对应数据库;
- 语法格式:【mysql 数据库名 < 路径+文件名.sql -u用户名 -p密码 --default-character-set=utf8】。
-- 事先在 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)方式二
- 在登录 MySQL 之后操作;
- 语法格式:【source 路径+文件名.sql;】。
-- 创建 test 空白数据库
create database test;-- 使用 test
use test-- 导入 test.sql
source D:/test.sql;