一,什么是MySql
一种开源的关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发并维护的,后来被Oracle公司收购。MySQL是一种免费使用的数据库,它的名字来源于创始人们的女儿名字My。MySQL以其易于使用、高性能和可靠性而受到广泛应用。作为关系型数据库管理系统,MySQL使用结构化查询语言(SQL)进行数据库的管理和操作。它在设计上遵循ACID(原子性、一致性、隔离性和持久性)原则,并采用表格形式存储数据。用户可以使用标准SQL命令来创建、修改、删除和查询数据库中的数据。
1.1 MySql的特点(大致7点)
- 开源和免费:开源软件,用户可以自由获取、使用和修改它,而且无需支付任何费用。这使得MySQL成为许多开发者和组织的首选数据库,特别是对于个人开发者和小型企业而言,可以降低成本和开发门槛。
- 高性能:具有优化的查询执行引擎和高效的存储引擎,可以快速处理大量的数据和高并发访问请求。它可以通过索引、查询缓存、查询优化等技术来提高查询性能。
- 可靠性和稳定性:以数据的完整性和可靠性为重点,支持数据备份和恢复功能,可以保护数据的安全,并提供高可用性的系统架构。它也具有事务处理的支持,确保数据操作的原子性,保持数据库的一致性。
- 可扩展性:支持水平和垂直两种方式的扩展。水平扩展可以通过分布式数据库集群来增加数据库的存储能力和处理能力。垂直扩展则可以通过增加服务器的硬件性能(如RAM、CPU)来提升MySQL的性能。
- 多平台支持:可以在多种操作系统上运行,包括Windows、Linux、macOS等,使得开发者可以根据自己的需求选择合适的平台进行部署。
- 简单易用:提供了简单而直观的命令和工具,使得用户可以方便地创建、管理和操作数据库。它的语法和功能相对较为简单,对于初学者来说容易上手。
- 庞大的社区和支持:拥有庞大的用户社区和开源开发者社区,提供了大量的文档、教程、插件和解决方案供用户参考和使用。用户可以在社区中交流经验、寻求帮助,并获得及时的技术支持。
二,MySql的存储引擎
2.1 InnoDB:
是MySQL的默认存储引擎,也是最常用的存储引擎之一。它支持事务处理(ACID兼容)、外键约束和崩溃恢复及行级锁定(这一点说明锁的粒度小,在写数据时,不需要锁住整个表,因此适用于高并发情形)及外键支持(所有数据库引擎中独一份,仅有它支持外键)该引擎的设计目标便是处理大容量数据的数据库系统,MySQL在运行时InnoDB会在内存中建立缓冲池,用于缓存数据及索引。
2.2 ACID事务:
2.2.1原子性(Atomicity):
事务是一个原子性质的操作单元,事务里面的对数据库的操作要么都执行,要么都不执行。
2.2.2一致性(Consistency):
在事务开始之前和完成之后,数据都必须保持一致状态,必须保证数据库的完整性。也就是说,数据必须符合数据库的规则。
2.2.3隔离性(Isolation):
一个事务的执行不能被其他事务干扰。即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
2.2.4持久性(Durability):
持久性也成为永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久的。
三,MySql授权
注意:在MySql5.7版本与MySql8.0版本语法大部分语句都不是同样的,要注意版本区分
3.1 查看用户:
select * from user
3.2创建用户:
在MySql8.0版本,在创建用户时候赋予密码,如下语句,创建一个lingdao用户密码为123456,
语句:
create user lingdao;
ALTER USER 'lingdao'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
3.3 给用户赋予权限:
给lingdao赋予mybatis_ssm所有权限,lingdao可以在mybatis_ssm中建立表等数据
语句:
grant ALL on mybatis_ssm.* to lingdao@'%';
3.4撤销用户权限
撤销lingdao用户下的mybatis_ssm数据库
语句:
revoke all on mybatis_ssm.* from lingdao@'%';
3.5 删除用户
删除用户名为lingdao的用户
语句:
drop user lingdao