DCL

在默认情况下,只有超级管理员才能操作数据库

访问控制权限

mysql实现了复杂的访问控制和权限系统,允许

命令行链接方式

mysql -u 用户名 -p密码 -h 服务器IP地址 -P 服务器端mysql端口 -D 数据u名

当客户端链接到服务器时,mysql访问控制两个阶段

1.链接
2.验证

默认表

创建mysql的时候就会有

user表:包含账户和权限列

db表:那个用户可以访问那个数据库

table_priv和columns_priv表:包含表级和列级操作

procs_priv:包含存储函数和存储过程的表

创建账户:

create user 用户名(格式:username@访问域名) identified by 密码[必须是明文,字符串]

用户名:

username@%username@%.alibaba.com 只能访问alibaba.com 域名下的东西    省略@,表示%

通配符(%)和(-)

百分号或者-表示在任意部位都可以修改

删除用户

drop username@访问域名

drop username@访问域名,username1@访问域名,username2@访问域名

delete from user where user=username

查看用户权限

show grants for username@访问域名

点之前的部分表示数据库,(.)之后的部分表示表上的结果,

设置权限

grant 权限1,权限2【all:所有】on 库.表/库/表 to user 【 identified by 密码[必须是明文,字符串]】 【require 链接数据的方式】 【with [grant option | resource option]】(一般都写)

grant all on ( * . *) to username@访问域名 with grant option;

设置指定权限

create user rfc indentified by ‘密码’

grant select,update,delete on alibaba.* to rfc

执行无权利错误 1142(42000)

允许远程链接

grant all privileges on * . * to ‘root’@’%’ indentfied by ‘mysql’ with grant option; 设置权限密码用户名

刷新权限

flush privileges;

撤销权限

revoke privilege_type [(column_list)],[privilege_type [(column_list)]] on object_type.privilege_level from user,[user1,user2]

示例:

revoke select on * . * from user

修改密码

1.登录MySQL

set password for 用户名@localhost =password(‘新密码’)

2.登录MySQL

update user set password=password(‘密码’) where user=‘root’ and host=‘localhost’

刷新

3.用mysqladmin

mysqladmin -u用户名 -p旧密码 password 新密码

4.忘记root密码或者初始化密码

在windows上1.关闭正在运行的mysql【必须】2.打开DOS窗口,转到mysql\bin3.输入8.0版本以前:mysqld --skip-grant-tables   【跳过权限检查】8.0版本:mysqld --console --sjip-grant-tables --shared-memory4.再打开一个DOS窗口,转到mysql\bin目录5.输入mysql回车,若成功,将出现mysql提示符6.链接数据库: use mysql7.改密码update user set password=password('密码') where user='root' and host='localhost'8.刷新权限flush privileges;9.退出10.重启电脑早进入,修改完成

数据库备份

mysqldump

mysqldump -u 用户名 -p 密码 [-hlocalhost] 数据库名 > 输出的文件.sql

仅备份数据库结构

mysqldump -u 用户名 -p 密码 [-hlocalhost] --no-data 数据库名 > 输出的文件.sql

仅备份数据库数据

mysqldump -u 用户名 -p 密码 [-hlocalhost] --no-create-info 数据库名 > 输出的文件.sql

导出多个数据库

mysqldump -u 用户名 -p 密码 [数据库1,数据库2] > [输出的文件1.sql,输出的文件2.sql]

所有的:

mysqldump -u 用户名 -p 密码 --all-database > [all_dbs_dump_files.sql]

导入数据库

1、首先建空数据库mysql>create database abc;
2、导入数据库方法一:(1)选择数据库mysql>use abc;(2)设置数据库编码mysql>set names utf8;(3)导入数据(注意sql文件的路径)mysql>source /home/abc/abc.sql;方法二:mysql -u用户名 -p密码 数据库名 < 数据库名.sql#mysql -uabc_f -p abc < abc.sql

查询

查询数据库

show databases;删除数据库:drop database sc;
查询表的结构:desc 表名;
查看基本表:show tables;

查询列

show columns from 表名;
show columns from 表名 like '关键字';
show columns from 表名 like '%e%';
show columns from 表名 where Field="关键字";

查询用户

select user from mysql;
当前用户:
select user();
select current_user();

当前登录的用户
select user,host,db,command from information_schema.processlist;[临时表]

数据库维护

分析表

analyze table 表名,【表名2,...】;
分析结果:
Table:表名;
Op:执行的操作
Msg_type:信息类型,状态/警告/错误
Msg_text:显示信息

优化表

optimize table 表名;

检查表

check table 表名;
只管检查,不管修复

修复表

尝试修复,不一定能修好
repair table 表名;
显示表是否修复;

数据库学习--DCL(数据库控制语言)相关推荐

  1. oracle临时表经常被锁_数据库学习——Oracle 数据库了解与使用

    一. 数据库相关概念 1 什么是数据库 所谓的数据库其实就是数据的集合.用户可以对集合中的数据进行新增.查询.更新.删除等操作.数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...

  2. h2数据库学习------h2数据库介绍

    介绍 H2是一款内存数据库,适合我们在开发阶段.学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求. H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是 ...

  3. 【数据库学习】——数据库可视化--Navicat下载安装连接教程

    目录 进入网站 下载可视化软件 安装 双击桌面图标,选择试用 连接数据库 查看数据库中的表,如下所示 常用数据库有: MySQL.sqlite等 进入网站 Navicat | 产品https://ww ...

  4. DB2数据库学习之数据库备份还原

    一.数据库离线(脱机)备份 1.cd /db2_backup 切换到存放备份文件的目录,如果没有要新建 2.db2 list applications for db dbName(数据库名) 确保没人 ...

  5. linux系统中mysql表中能添加中文_数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)...

    数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...

  6. 数据库学习--DQL(数据库查询语言)

    查询语句 select * from 表 where 条件 [inner/left/right join 表1 on 条件] group by 列名 having 组 order by 列名 limi ...

  7. h2数据库学习----h2数据库基本使用

    依赖 <dependency><groupId>org.glassfish.hk2</groupId><artifactId>hk2</artif ...

  8. 【数据库学习笔记】——操作sqlite(增删改查)以及cursor的方法介绍

    目录 1.sqlite数据库介绍 1)常见的数据库操作 2)数据操作常见步骤 2.向数据表中增加数据(insert into) 1)向数据表中添加一条记录 2)向数据表中一次性添加多条记录 ​ 3.修 ...

  9. 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...

最新文章

  1. Spring框架系列之AOP思想
  2. C9---include,编译
  3. 从介质部署额外域控制器
  4. 汇编LAHF指令学习 - 使用emu8086
  5. 运维岗位技能风向标!
  6. Openlayers中实现地图上添加一条红色直线
  7. Gcc编译链接及常用选项总结
  8. 静态成员常量的初始化
  9. Xcode设置苹果应用的app icon和launch image(应用图标和启动页面)
  10. Python爬取天堂网图片
  11. Ubuntu下安装多个Java及切换
  12. 一个敷衍的开头。。。
  13. java——API——ArrayList集合
  14. Python Pexpect库的简单使用
  15. 无限循环小数转化分数
  16. PlatoFarm几大创新经济模型,给予当下元宇宙市场的启发
  17. 豆沙绿 RGB值 hex值 及eclipse设置背景色步骤
  18. camera知识储备2
  19. 教你看电脑的配置,学下以后会用得着。
  20. 干支纪年java_天干地支纪年法 - osc_xcg0s5cw的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. (CSS3)CSS3- 最常用的属性(一)
  2. 企业实战|CentOS8安装Zabbix 4.4
  3. zabbix自动发现端口
  4. shell awk实现实时监控网卡流量脚本(常见应用二)
  5. 查看编译class文件时,使用的JDK版本(只能查看到大版本)
  6. 【PostgreSQL-9.6.3】物化视图
  7. 小酌重构系列[20]——用条件判断代替异常
  8. vim 编辑器 打开GB2312、GBK文件乱码解决方法
  9. MyEclipse 2015 运行tomcat 内存溢出的解决方法
  10. SecureCRT连接阿里云ECS服务器,经常掉线的解决方案