数据库设计-笔记2
1.介绍一下MySQL
历史与发展
- MySQL 最初由瑞典的 MySQL AB 公司开发,于 1995 年正式发布。
- 2008 年,MySQL AB 公司被 Sun Microsystems 收购,之后 Sun 又被甲骨文(Oracle)公司收购,MySQL 成为 Oracle 旗下的产品。
- 尽管所有权发生了变化,但 MySQL 仍然保持着开源的特性,并在开源社区的推动下不断发展和完善。
特点
- 开源免费:任何人都可以自由使用、修改和分发 MySQL 的源代码,这使得它在成本敏感的项目中具有很大的优势。
- 性能卓越:MySQL 具有高效的存储引擎和查询优化器,能够快速处理大量的数据。它支持多线程和并发操作,能够同时处理多个用户的请求,提高系统的吞吐量。
- 稳定性高:经过多年的发展和广泛的应用,MySQL 已经成为一个非常稳定的数据库系统。它具有完善的事务处理机制和数据恢复功能,能够保证数据的一致性和完整性。
- 功能丰富:支持标准的 SQL 语言,提供了丰富的数据库对象,如表格、视图、存储过程、函数等。还支持多种数据类型,能够满足不同应用场景的需求。
- 易于使用和管理:MySQL 提供了简单易用的命令行工具和图形化管理工具,使得数据库的安装、配置、管理和维护都非常方便。即使是没有太多数据库经验的用户也能够快速上手。
应用场景
- Web 应用:是 LAMP(Linux + Apache + MySQL + PHP/Perl/Python)架构的重要组成部分,广泛应用于各种动态网站和 Web 应用程序的开发,如 WordPress、Drupal 等内容管理系统,以及电子商务网站、社交媒体平台等。
- 企业级应用:许多企业在内部的业务系统中使用 MySQL,如财务管理系统、客户关系管理系统(CRM)、企业资源规划系统(ERP)等。它能够满足企业对数据存储和处理的高可靠性、高性能和安全性的要求。
- 大数据处理:虽然 MySQL 本身主要用于关系型数据的处理,但在一些大数据处理场景中,它也可以作为数据仓库的一部分,与其他大数据处理工具(如 Hadoop、Spark 等)结合使用,用于存储和管理元数据或一些结构化程度较高的小数据量数据。
存储引擎
- InnoDB:是 MySQL 默认的存储引擎,支持事务、行级锁和外键约束,具有很好的事务处理能力和数据一致性保证,适用于对数据一致性要求较高的应用场景,如银行系统、电子商务等。
- MyISAM:不支持事务和行级锁,但具有较高的查询性能,适用于以读操作为主的应用场景,如一些只读的数据库、数据仓库等。
- Memory:将数据存储在内存中,速度非常快,但数据在服务器重启后会丢失,适用于对速度要求极高、数据量较小且不需要持久化存储的场景,如缓存、临时数据存储等。
社区与生态系统
- 活跃的社区:拥有庞大而活跃的开源社区,社区成员来自世界各地。开发者可以在社区中分享经验、交流技术、提交 Bug 报告和贡献代码。社区的力量推动着 MySQL 不断发展和完善,同时也为用户提供了丰富的技术支持和资源。
- 丰富的插件和工具:围绕 MySQL 形成了一个丰富的生态系统,有许多第三方的插件和工具可供使用。例如,MySQL Workbench 是一款功能强大的图形化数据库设计和管理工具,Navicat for MySQL 是一款流行的数据库管理工具,还有各种性能监控工具、数据备份恢复工具等,这些工具能够帮助开发者和管理员更好地使用和管理 MySQL 数据库。
MySQL目前属于Oracle甲骨文公司,MySQL称之为关系型数据库、微软的SQL Server。
MySQL数据库能够支持在多种操作系统上运行,包括Solaris、Mac OS、FreeBSD和Windows,Linux通通支持。核心功能就是处理数据,其中提供空间供数据存储又是其主要主要功能之一。
数据库一般也不直接面向数据存储,存储是交给表/索引这类对象完成的。
MySQL数据库是一种C/S模型(即客户端和服务端模型),客户端通过账号、密码来连接服务器,连接成功之后才可以进行数据库的操作(CRUD:增加、删除、变更、查询)。MySQL的服务端采用IO复用 + 可伸缩的连接池,实现了网络高并发的经典模型。
2.命令罢了
1.进入安装目录下的bin目录
执行cmd (会出现管理员权限问题)
2.执行
mysqld --initialize-insecure --console
3.执行
mysqld --install 安装服务
mysqld -remove 移除服务(这个不需要执行)
4.执行
net start mysql 启动服务
mysql stop mysql 关闭服务(这个不需要执行)
5.登录
mysql -u root -p 默认没有密码,直接回车
6.修改密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';