在真实的项目开发中,用户数据如果保存在内存中会有什么问题?

  • 如果服务器突然挂了,内存中的数据就会销毁。
  • 用户数据量可能很大,内存不能满足需求。

用户的数据应该持久化,永久的保存起来。

我们使用数据库来保存数据,数据库的本质是以文件的形式保存在硬盘上,所以关机开机之后数据仍然存在不会丢失。

使用数据库的好处

如果不使用数据库又想持久化数据怎么办?
我们可以自己创建一个文件保存数据。比如保存用户数据,姓名、年龄、身高
user.txt文件

  1. 姓名 年龄 身高 所在公司名称 公司地址 公司网站地址
  2. 老李 30 175 滴滴 北京西二旗 www.diid.com
  3. 老张 25 185 京东 北京亦庄 www.jd.com
  4. 老王 18 165 滴滴 北京西二旗 www.diid.com

这种方式保存数据,需要定义好保存格式,并且插入数据、删除数据非常麻烦,程序员需要做大量的工作,并且很容易出错,而且数据量如果非常大,内存也不够用。
并且观察上面的数据可以发现老李和老王很多信息是重复的,比如公司信息。这就会造成很多重复数据,占用硬盘空间,如果使用数据库存储数据,这些冗余信息只需要存储一份,并且以后如果公司信息发生变化,比如地址变化,在数据库中只需要改一份就可以了。
所以在企业开发中使用数据库存储数据。
使用数据库的好处:

  • 可以高效的存储、查询、修改、删除数据
  • 减少重复、冗余的数据
  • 提高数据的安全性还有很多权限管理

MySQL

MySQL是一款开源的关系型数据库。
MAC下载地址
Snipaste_2021-08-21_19-20-10.png
Mac系统上MySQL默认安装路径为

  1. /usr/local/mysql/bin

配置环境变量
编辑vim .bash_profile

  1. PATH=$PATH:/usr/local/mysql/bin

这里有一篇文章讲解如何设置root密码root密码忘记之后如何修改

配置数据库编码

Mac MySQL 默认情况下编码为 拉丁文 编码,不支持中文,需要更改为UTF-8编码来支持中文等国际化字符。
更换编码的步骤:修改配置文件my.cnf增加数据库编码配置,重新启动数据库服务即可。
步骤:

  1. 在 /etc 文件夹中增加配置文件 my.cnf 配置数据库编码,my.cnf 文件内容如下 ```cpp [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES character-set-server=utf8

[client]

  1. 为了避免意外错误可以下载配置文件: [http://doc.canglaoshi.org/mysql_mac/my.cnf.zip](http://doc.canglaoshi.org/mysql_mac/my.cnf.zip)
  2. 2. 将下载的文件拷贝到/etc 目录下
  3. ```cpp
  4. sudo cp ~/Downloads/my.cnf /etc

这个命令的作用是将下载文件夹中的 my.cnf 文件复制到 /etc 文件夹,其中:~/Downloads 代表下载文件夹。
由于安全原因,命令执行期间需要输入系统用户密码.

  1. 重启MySQL

Snipaste_2021-08-21_20-20-37.png

  1. 检查配置是否成功

a) 登录

  1. mysql -uroot -p

b) 执行SQL命令检查数据库编码:

  1. show variables like 'char%';

显示结果

  1. +--------------------------+-----------------------------------------------------------+
  2. | Variable_name | Value |
  3. +--------------------------+-----------------------------------------------------------+
  4. | character_set_client | utf8 |
  5. | character_set_connection | utf8 |
  6. | character_set_database | latin1 |
  7. | character_set_filesystem | binary |
  8. | character_set_results | utf8 |
  9. | character_set_server | latin1 |
  10. | character_set_system | utf8 |
  11. | character_sets_dir | /usr/local/mysql-5.7.29-macos10.14-x86_64/share/charsets/ |
  12. +--------------------------+-----------------------------------------------------------+

MySQL使用步骤

数据库 - 图3

MySQL安装后会开启一个进程,默认端口号为3306,客户端以后发送的指令(SQL语句)都是通过3306端口到达服务器。
MySQL和TomCat是平行关系,都会在服务端占用不同端口。
每个数据库里面可以存放多张表,表可以理解类似于Excel表格的东西。

GUI工具

在真实的项目开发过程中,我们通常使用图形化工具来管理数据库。
常用的图形化工具有
Navicate 付费
破解版地址