MySQL初级之【3.数据库用户管理、备份与设计】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL初级之【3.数据库用户管理、备份与设计】

前言


本文为MySQL数据库用户管理、备份与设计相关知识,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习知识清单~

本文上接:MySQL初级之【1.MySQL认识与安装配置】,MySQL初级之【2.最全数据库相关操作,CRUD】


一、数据库用户管理


1.新建用户


CREATE USER ‘用户名’@‘来源地址’ [IDENTIFIED BY [PASSWORD] ‘密码’];


‘用户名’:指定将创建的用户名

‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT

PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;若省略“IDENTIFIED

BY”部分,则用户的密码将为空(不建议使用)


2.查看用户信息


use mysql;
select User,authentication_string,Host from user;


创建后的用户保存在 mysql 数据库的 user 表里


3.重命名用户


rename user '原名字'@'localhost' to '新名字'@'localhost';


4.删除用户


drop user '用户名'@'localhost';


5.修改用户密码


  • 修改当前登录用户密码


set password = password('123456');


修改其他用户密码

set password for '用户名'@'localhost' = password('654321');

6.数据库用户授权


授予权限


GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时,GRANT语句用于修改用户信息。

GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘来源地址’ [IDENTIFIED BY ‘密码’];

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“”。例如,使用“kgc.”表示授权操作的对象为kgc数据库中的所有表。

‘用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.accp.com”、“192.168.80.%”等。

IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,

则用户的密码将为空。

数据库授权


查看用户权限

show grants for 用户名@localhost;

指定用户可以查看哪个数据库/表,别的数据库无权访问

 #用户yong只有test库下所有表的查询权限
grant select on test.* to 用户名@localhost;

远程登录授


grant all on *.* to '用户名'@'%' identified by '123456';


撤销权限


revoke select on test.* from 用户名@localhost;


二、数据库备份


1.数据库备份必要性


  • 保证重要数据不丢失
  • 数据转移


2.MySQL数据库备份方法


  • mysqldump备份工具
-- 导出
- 导出一张表
  mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)
- 导出多张表
  mysqldump -u用户名 -p密码 库名 表1 表2 表3 > 文件名(D:/a.sql)
- 导出所有表
  mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)
- 导出一个库 
  mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)
  
-- 导入
- 在登录mysql的情况下:
  source  备份文件
- 在不登录的情况下
  mysql -u用户名 -p密码 库名 < 备份文件
  
--恢复
- List item
   mysql-u用户名 -p密码 库名 < 路径/文件名

用数据库管理工具,如SQLyog

直接拷贝数据库文件和相关配置文件


三、数据库表设计


1.为什么需要数据规范化


不合规范的表设计会导致的问题:


信息重复

更新异常

插入异常

无法正确表示信息

删除异常

丢失有效信息


2.三大范式通俗定义


第一范式 (1st NF)


  • 第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元,则满足第一范式


第二范式(2nd NF)


  • 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)
  • 第二范式要求每个表只描述一件事情


第三范式(3rd NF)


  • 如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式
  • 第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关


3.规范化和性能的关系


  • 为满足某种商业目标 , 数据库性能比规范化数据库更重要
  • 在数据规范化的同时 , 要综合考虑数据库的性能
  • 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
  • 通过在给定的表中插入计算列,以方便查询


后记


Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习知识清单~

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
11天前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
12天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
13天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
12天前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
18天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
18天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
56 3
|
24天前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
2月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
18天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
205 7
|
18天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
82 6

推荐镜像

更多