MySQL菜鸟教程

最近要学习MySQL的相关知识,就去菜鸟教程里面仔细看了下教程,想做一下笔记记录建立MySQL过程中遇到的问题和一些概念上的疑惑。里面的内容大部分来自菜鸟教程(照着教程做一般都不会出现什么问题,所以记录了一些概念的解释,还有一些相关操作),当然了作者属于动手菜鸡型选手,在建立MySQL过程中照着做都出现了问题,这里说一下遇到的坑和解决的相关方法。

MySQL介绍

首先需要了解 什么是数据库?

数据库(Database)

数据库是按照数据结构来组织、存储和管理数据的仓库。

每个数据库都有一个或者多个不同的API来创建、访问、管理、搜索和复制所保存的数据。

关系型数据库管理系统是用来存储和管理大数据量的。关系型数据库就是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS(Relational Database Management System)关系数据库管理系统的特点是:

  1. 数据以表格的形式出现
  2. 每行为各种记录名称
  3. 每列为记录名称所对应的数据域
  4. 许多的行和列组成一张表单
  5. 若干的表单组成database

需要了解的相关术语

  • 冗余: 存储两倍数据,冗余降低了性能,但是提高了数据的安全性。
  • 主键: 主键是唯一的。一个数据表中只能包含一个主键。可以使用主键来查询数据。
  • 外键: 外键用于关联两个表。
  • 复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引: 使用索引可以快速访问数据表中的特定信息。索引是对数据库表中一列或者多列的值进行排序的一种结构,类似于目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
  • 值(value): 行的具体信息,每个值必须与该列的数据类型相同。
  • 键(key): 键的值在当前列中具有唯一性。

MySQL数据库

MySQL是一个关系型数据库管理系统,也是一种关联数据库管理系统,关联数据库将数据保存在不同表中,而不是将所有数据放在一个大仓库中,这样增加了速度并且提高了灵活性。

而MySQL的特点有:

  • 开源、免费
  • 规模大。 支持大型的数据库。
  • 标准化。 使用的是标准的SQL数据语言格式。
  • 兼容性好。 可以运行在多个系统上,并且支持多种语言。
  • 可定制。 采用了GPL协议,可以通过修改源码来开发自己的MySQL系统。

Windows安装MySQL

因为现在使用的环境是win,所以只看了win环境下的MySQL安装,使用Linux或者Unix的小伙伴可以直接到菜鸟教程的MySQL安装中查看相关设置啦

windows中MySQL官网下载

下载、解压这种基本操作就不赘述了,需要注意的是配置MySQL的配置文件

在解压的时候要记住路径,然后在解压的文件夹中创建my.ini配置文件,编辑my.ini配置基本文件

[client]
# 设置mysql客户端默认字符集
default - character - set = utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = C:\web\mysql - 8.0.17
# 设置 mysql数据库的数据存放目录,MySQL 8+不需要以下配置,系统自己生成即可,否则有可能报错
# datadir = C:\web\sqldata
# 允许最大连接数
max_connections = 20
# 服务端使用的字符集默认为8bit编码的latin1字符集
character - set - server = utf8
# 创建新表时将使用的默认存储引擎
default - storage - engine = INNODB

然后启动MySQL数据库:

以管理员身份打开cmd命令行工具,切换目录:

cd C:\web\mysql - 8.0.17\bin

初始化数据库:

mysqld – initialize – console

多年来动手受挫的直觉告诉我,该出现问题了。?

果然,一回车就是几条错误信息,其中包括了:

  1. UTF8格式不建议,需要改成UTF9MB4。这个问题其实很好解决,甚至不需要去理会也是没有问题的。我们只需要在my.ini文件中,修改default-character-set=utf8default-character-set=utf8mb4即可,如果不修改的话还是可以得到root用户初始默认密码的。
  2. data文件未删除(百度了下错误语句之后解决了问题忘记截图了……)。这个问题应该是初始化的data目录的问题(也就是下面的5.7那里),最简单的解决方案就是把mysql-8.0.17-winx64文件下的data文件删除了。然后在bin目录下重新执行一次数据库初始化即可。(这里的问题其实不太理解,当时就是按照错误语句百度一下找到解决方法就照着做了,是什么原因导致的,为什么删去data文件就可以执行初始化这两个问题其实没有搞懂,希望知道的大佬解答一下?)

执行完成后,会输出 root 用户的初始默认密码,如:


2019 - 10 - 08T14:23:12.1244151Z 5 [Note] [MY-010454][Server]A temporary possword is generated for root@localhost: mw,i,C+yj5F_

上面大概就是这一行东西……时间还有一些细节都是照着菜鸟教程打出来的(因为好不容易成功了太激动不记得截图了……),唯一记得就是把当时的密码保存下来。因为前后一共初始化了两次,所以发现这个密码应该是每次初始化之后都会重置的随机字符串
其中 mw,i,C+yj5F_就是初始密码,后续登陆需要用到,也可以在登陆之后修改密码。

输入安装命令:

mysqld install

启动输入命令即可:

net start mysql

这里有一点疑惑的是教程里面提到了有关初始化data目录的操作

这边提到需要在5.7初始化data目录:

cd C:\web\mysql - 8.0.17\bin
mysqld – initialize - insecure

在初始化之后再运行net start mysql就可以启动mysql

登陆MySQL

首先要在MySQL服务运行的前提下,才可以通过MySQL自带的客户端工具登陆到MySQL数据库中,首先打开命令提示符输入对应格式的命名:

mysql -h 主机名 -u 用户名 -p

参数说明:

  • -h: 指定客户端所要登陆MySQL主机名,登陆本机(Localhost 或 127.0.0.1)该参数可以省略。
  • -u: 登陆的用户名。
  • -p: 告诉服务器将会使用一个密码来登陆,如果索要登陆的用户名密码可以为空,可以忽略这个选项。

如果要登陆的是本机的MySQL数据库,只要输入:

mysql -u root -p

如果安装正确并且MySQL正在执行,回车之后会得到这个响应:

Enter password:

如果有密码就输入密码登陆,没有的话就直接回车登陆。
登陆成功会出现Welcome to the MySQL monitor…的提示语

若要退出登陆,只需要在mysql>后面输入exit或者quit退出即可。

更多推荐

MySQL学习笔记——学习自菜鸟教程