数据库理论及MySQL下载与环境配置

数据库理论及MySQL下载

-----------------2023-2-27更新-----------------

5.7版本mysql下载

下载解压

下载好安装包后解压到合适的文件夹

新建my.ini配置文件

5.7版本的mysql默认没有配置文件和data文件夹,需要初始化手动创建:

image

[mysqld]
port = 3306
basedir=D:\MySQL\mysql-5.7.40-winx64
datadir=D:\MySQL\mysql-5.7.40-winx64/data 
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8

ps:注意根据自己的mysql路径确定basedir和datadir。

配置环境变量

参考老博客

启动mysqld服务

在管理员cmd中依次执行:

mysqld --initialize   # 初始化data数据库
mysqld -install    # 添加系统服务
net start mysql    # 启动服务

连接数据库

在这些版本中,可能出现mysql客户端的root用空密码连接不上的情况,这时则需要跳过验证去修改密码,参考下文的老博客【忘记密码】小节。

-----------------老博客分割线-------------------

数据库发展

存取数据的发展

  • 自定义文件,以各种各样的形式存储

  • 软件开发目录规范的db文件夹

  • 数据库服务:统一了存储路径和操作数据的方式

    降低了学习成本,每个项目都可以用类似的操作处理数据

数据库软件发展

  • 本地文件,如早期很多单机游戏和非网络应用

  • 数据存储于网络

    现在很多的软件采取的C/S架构和B/S架构,所有用户的数据都存储于服务端。

    客户端通过请求服务端服务的方式操作数据。

    明显的好处时,用户可以通过账号在不同的设备不同的地方访问这些数据。

  • 数据库服务集群:为了确保所用用户的数据安全,数据库的内容都会备份。

数据库理论

数据库本质

  • 站在底层原理的角度
    数据库指的是操作数据的进程(一堆代码)
  • 站在实际应用的角度
    数据库指的是可视化操作界面(一些软件)

一般描述数据库就是指数据库软件。

数据库也是C/S架构的程序,我们可以通过数据库的客户端输入指令来让数据库的服务端来服务,操作实际的数据。

数据库分类

关系型数据库

关系型数据库的特征是:

  • 拥有固定的表结构(字段名 字段类型等)
  • 表之间可以建立数据库层面的关系(不是通过代码层面,而是数据之间的关联)
关系型数据库 特点
MySQL 开源使用,使用面最广,功能均衡全面
Oracle 收费,目前安全性最高,大企业爱用
PostgreSQL 开源免费,支持二次开发,兼容性高
MariaDB 和MySql是一个作者,依然开源免费
sqlite 小型数据库,主要用于本地测试

除此以外,市面上还有很多数据库软件,如sql server、db2、access等。

非关系型数据库

非关系型数据库的特征是:

  • 没有固定的表结构,采取键值对的方式存取数据
  • 数据本身没有关系,要通过代码来编写数据之间的逻辑关系
非关系型数据库 特点
redis 使用频率最高的非关系型数据库,是一种缓存数据库
MongoDB 文档型数据库,主要用于爬虫和大数据领域(最像关系型的非关系型数据库)
memcache 已经被redis逐渐淘汰,因为redis很多功能它没有

虽然数据库软件很多,但是所有热门的数据库操作数据的方式都十分相似,其中MySQL最为典型。

MySQL下载

最新的版本已经到8.x了,越新的版本学习成本越低,本文安装的MySql版本是5.6版本。

下载流程

MySQL官网:https://www.mysql.com/

各种版本的下载地址:https://downloads.mysql.com/archives/community/

  1. 选择版本下载压缩包

    image

  2. 将压缩包解压并放到一个合适的文件夹

  3. 查看目录

    image

安装完成。

MySQL启动

  1. 将bin文件夹添加到系统环境变量

    image

  2. 用管理员cmd命令行启动mysqld

    > mysqld  # 如果添加过环境变量则可以直接启动mysqld
    

    image

  3. mysqld所在窗口不要动,再开个cmd到下开mysql,有两种开启模式,如图
    image

这样我们就可以通过mysql输入命令来操作我们的数据了(主要就是对data文件夹的操作)

系统服务制作

每次都需要手动开一个进程mysqld太麻烦了,我们可以让mysqld设置为系统的后台服务并开机自动开启。(进行以下操作时记得先清理之前开启的mysql服务端和客户端)

  1. 将mysql添加到系统服务中

    查看系统服务的方式:运行窗口输入services.msc

    image

    将程序添加到系统服务:管理员cmd输入mysqld --install

    image

    image

  2. 首次添加需要手动启动一下

    可以右击上图的MySQL启动

    也可以用命令行启动:net start mysqld

    image

了解:卸载MySQL
1.先关闭服务端
	net stop mysql	
2.移除系统服务
	mysqld --remove

修改mysql登录密码

  1. mysqladmin -u用户名 -p原密码 password 新密码

    上述形式是明文的密码形式,也可以不直接跟明文,那么程序会要求密文输入

    这里原本没有原密码所以直接回车输新密码。

    image

  2. 管理员root账号登录后直接修改存储用户数据的表mysql.user(需要用到mysql语句)

忘记密码

除了卸载重装(不推荐)外还可以通过跳过授权表的方式打开数据库。

  1. 关闭运行的服务端:net stop mysql

  2. 以跳过授权表的方式重新启动mysqld服务端:mysqld --skip-grant-tables

  3. 管理员身份登录:mysql -uroot -p

  4. 直接修改密码:(修改mysql库下的user表的root的密码)

    update mysql.user set password=password('123') where Host='localhost' and User='root';
    

字符编码与配置文件

\s查看MySQL相关信息

可以看见当前用户、版本、编码、端口号
image
其中字符编码有四栏,可以看见字符编码并不统一,除了Db characterset是我自己设置的,
其他都是MySQL5.6及之前的版本默认的字符编码,这已经不适用于我们现在的字符编码需求。

不过之后的版本都不需要我们再手动配置,默认都是utf家族的编码格式。

如果想要永久修改编码配置,需要操作配置文件。

默认的配置文件是my-default.ini

打开这个文件,它内部有很多的注释和一段简单的配置文件。

image

配置的文件说明中提到如果想要修改和添加配置,不要在这个文件中直接改动,而需要重新写一个文件my.ini放到同一级目录下,这个文件中写入我们的新配置。

而关于字符编码的配置拷贝下述配置即可。

[mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci
[client]
    default-character-set=utf8mb4
[mysql]
    default-character-set=utf8mb4

ps:
1.utf8mb4能够存储表情,功能更强大。
2.utf8与utf-8是有区别的,MySQL中只有utf8。

修改了配置文件中关于[mysqld]的配置,需要重启服务端。
因为只有在mysqld启动时,程序才会加载这些配置。

net stop mysql
net start mysql

修改后再用\s查看配置可以看见默认字符编码的改动已经生效了。
image

修改配置后可能出现的问题

我们是通过写了my.ini文件放在同级目录下的方式覆盖了my_default.ini的配置。
而原本的默认配置文件中是有一条mysqld的配置是原本生效的。
所以要记得把这一条配置给加上:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

最后my.ini中加入原有配置和新的字符编码配置应该是下图这样:
image

posted @ 2022-11-22 15:19  leethon  阅读(45)  评论(0编辑  收藏  举报