数据库-MySQL

Posted 吧啦吧啦吧啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库-MySQL相关的知识,希望对你有一定的参考价值。

 

一. 数据库概述

 

什么是数据(DATA)?

 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是是文字,图片,图像,声音,语言等,

数据由多种表现形式,他们都可以经过数字化后存入计算机.

 在计算机中描述一个 事物, 就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容.

什么是数据库(DATABASE,简称DB)

 数据库即是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.

数据库是长期存放在计算机内,有组织,可共享的数据即可.

数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性.并可为多用户共享.

什么是数据库管理系统(DataBase Management System)?

mysql,Oracle,SQLite

mysql主要用于大型门户,例如搜狗,新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品.

 

数据库服务器, 数据管理系统, 数据库, 表 与 记录的关系 (重点!!!)

记录: 1 xxx 23232 32 ( 多个字段的信息组成一条记录,即文件中的一行内容)

表: student, school, class_list ( 即文件)

数据库: fly_stu ( 即是 文件夹)

数据库管理系统: 如mysql ( 是一个软件)

数据库服务器: 一台计算机 (对内存要求比较高).

  总结: 数据库服务器: 运行数据库管理软件

      数据库管理软件: 管理数据库

      数据库: 即文件夹, 用来组织文件/表.

      表: 即文件,用来存放多行内容/多条记录.

 

二. MySQL安装和基本管理

  主要内容:

    1. mysql的介绍安装和启动

    2.mysql破解密码

    3. mysql中统一字符编码

 

mysql 是一个关系型数据库管理系统.关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.

 

mysql是什么?

 通俗的来说: mysql就是一个基于socket编写的C/S架构的软件.(client/server)

 

数据库管理软件分类

 分两大类:

  关系型: 如sqllite,db2,oracle,access,sql,server,MySQL. 注意: sql语句通用

  非关系型: mongodb,redis,memcache

总结两句话:

  关系型数据库需要有表结构

  非关系型数据库是key-value存储的,没有表结构.

所以,现在我们使用关系型数据库管理系统(RDEMS)来存储和管理的大数据量.所谓的关系型数据库,

是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.

RDBMS即关系数据库管理系统的特点:

  1. 数据以表格的形式出现

  2. 每行为各种记录名称

  3. 每列为记录名称所对应的数据域

  4. 许多的行和列组成一张表单

  5. 若干的表单组成database

RDBMS 术语

在我们开始学习MySQL数据库前,让我们先了解RDBMS的一些术语:

  数据库: 数据库是一些关联表的集合.

  数据表: 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格.

  列: 一列(数据元素) 包含了相同的数据,例如邮政编码的数据.

  行: 一行(=元组, 或记录) 是一组相关的数据, 例如一条用户订阅的数据.

  冗余: 存储两倍数据,冗余降低了性能,但提高了数据的安全性.

  主键: 主键是唯一的. 一个数据表中只能包含一个主键. 你可以使用主键来查询数据.

  外键: 外键用于关联两个表.

  复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引.

  索引: 使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构.类似于书籍的目录.

  参照完整性: 参照的完整性要求关系中不允许引用不存在的实体.

 

MySQL的下载安装

 想要使用MySQL来存储并保存数据,则需要做几件事情:

  1.安装MySQL服务端

  2.安装MySQL客户端

  3. 客户端 连接 服务端

  4. 客户端 发送命令给 服务端MySQL 服务的接收命令并执行相应操作( 增删改查等)

 下载地址: 

https://dev.mysql.com/downloads/mysql/

 

3, 解压

 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如: E:mysql-5.5.570winx64

4. 添加环境变量

  将详细路径添加到环境变量中.用 ; 分割.

5. 初始化

  mysqld --initialize-insecure

6. 启动mysql服务

  mysqld # 启动MySQL服务

7.启动mysql客户端并连接mysql服务端 ( 新开一个cmd窗口 )

  mysql -u root -p  #连接mysql服务器

  上一述解决了一些问题,但不够彻底,因为在执行mysql 启动mysql服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务.

注意: --install前,必须用mysql启动命令的绝对路径

# 制作MySQL的windows服务,在终端执行此命令:

‘‘E:mysqlmysql-5.7.21-winx64inmysqld" --install

# 移除MySQL的windows服务,在终端执行此命令:

"C:mysqlmysql-5.7.21-winx64inmysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

# 启动mysql服务

net start mysql

# 关闭mysql服务

net stop mysql

 

windows 下登录设置密码

打开终端,输入mysql

输入mysql提供的函数: select user(); # 查看当前登陆的账号

当前登陆的默认账号为[email protected]

 

如果想切到root账号登陆
执行命令:

mysql -uroot -p

再查看当前用户:

select user();

管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登陆了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码.

设置密码

设置管理员root账号密码为123

C:....> mysqladimin -uroot -p password "123" # 设置初始密码,由于原密码为空,因为-p可以不用,注意这句话不起作用,请使用update mysql.user set authentication_string = password(‘‘) where User=‘root‘;

然后再登陆账号,不输入密码则会出现如下结果:

 mysql -uroot -p

再执行如下操作:

 mysql -uroot -p123

如果想将原始密码123,设置新密码为456

C:...> mysqladmin -uroot -p"123" password "456" # 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码.

依次执行如下操作:

mysql -uroot -p456

select user();

 

 

密码忘记---破解密码

跳过授权方式,直接登陆!!

1.以管理员身份打开cmd

2.停掉mysql服务端

C:...> net stop mysql

MySQL 服务正在停止.

MySQL 服务已成功停止.

3.执行如下命令跳过授权表

# 跳过授权表

C:..> mysqld --skip-grant-tables

4.再次查看

mysql -u root -p

  之前密码是456,现在可以跳过密码,直接登录. 

5.现在可以任意的更改密码,执行如下命令.

update mysql.user set authentication_string = password(‘‘) where User=‘root‘;

6.刷新权限

flush privileges;

7.退出mysql,执行命令:exit

8.让用户去加载权限,以管理员身份进入cmd,查看当前mysq进程

tasklist |findstr mysql  # 查看当前mysql的进程

9. 杀死当前的进程,执行如下命令.

taskkill /F /PID 2132 # 杀死当前的进程pid

10.再次执行如下操作,还原.

net start mysql

mysql -uroot -p

 

 

统一字符编码

进入mysql客户端,执行s

为了统一字符编码,请执行如下操作:

(1),my.ini文件是mysql的配置文件,

在E:mysqlmysql-5.7.21-winx64文件下创建my.ini文件

(2), 将如下代码拷贝保存.

[mysqld]
# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
basedir=E:mysqlmysql-5.7.21-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir= E:mysqlmysql-5.7.21-winx64data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

 

(3),以管理员身份重启服务,执行如下命令.

net stop MySQL

net start MySQL

(4), 在cmd中输入mysql进入mysql环境,执行s,显示如下信息,表示成功.

s

 

 

 

 



[mysqld]# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**basedir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64# 设置mysql数据库的数据的存放目录,必须是datadatadir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64datasql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES# mysql端口port=3306# 字符集[mysqld]character-set-server=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]default-character-set=utf8

---恢复内容结束---

一. 数据库概述

 

什么是数据(DATA)?

 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是是文字,图片,图像,声音,语言等,

数据由多种表现形式,他们都可以经过数字化后存入计算机.

 在计算机中描述一个 事物, 就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容.

什么是数据库(DATABASE,简称DB)

 数据库即是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.

数据库是长期存放在计算机内,有组织,可共享的数据即可.

数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性.并可为多用户共享.

什么是数据库管理系统(DataBase Management System)?

如MySQL,Oracle,SQLite

mysql主要用于大型门户,例如搜狗,新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品.

 

数据库服务器, 数据管理系统, 数据库, 表 与 记录的关系 (重点!!!)

记录: 1 xxx 23232 32 ( 多个字段的信息组成一条记录,即文件中的一行内容)

表: student, school, class_list ( 即文件)

数据库: fly_stu ( 即是 文件夹)

数据库管理系统: 如mysql ( 是一个软件)

数据库服务器: 一台计算机 (对内存要求比较高).

  总结: 数据库服务器: 运行数据库管理软件

      数据库管理软件: 管理数据库

      数据库: 即文件夹, 用来组织文件/表.

      表: 即文件,用来存放多行内容/多条记录.

 

二. MySQL安装和基本管理

  主要内容:

    1. mysql的介绍安装和启动

    2.mysql破解密码

    3. mysql中统一字符编码

 

mysql 是一个关系型数据库管理系统.关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.

 

mysql是什么?

 通俗的来说: mysql就是一个基于socket编写的C/S架构的软件.(client/server)

 

数据库管理软件分类

 分两大类:

  关系型: 如sqllite,db2,oracle,access,sql,server,MySQL. 注意: sql语句通用

  非关系型: mongodb,redis,memcache

总结两句话:

  关系型数据库需要有表结构

  非关系型数据库是key-value存储的,没有表结构.

所以,现在我们使用关系型数据库管理系统(RDEMS)来存储和管理的大数据量.所谓的关系型数据库,

是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.

RDBMS即关系数据库管理系统的特点:

  1. 数据以表格的形式出现

  2. 每行为各种记录名称

  3. 每列为记录名称所对应的数据域

  4. 许多的行和列组成一张表单

  5. 若干的表单组成database

RDBMS 术语

在我们开始学习MySQL数据库前,让我们先了解RDBMS的一些术语:

  数据库: 数据库是一些关联表的集合.

  数据表: 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格.

  列: 一列(数据元素) 包含了相同的数据,例如邮政编码的数据.

  行: 一行(=元组, 或记录) 是一组相关的数据, 例如一条用户订阅的数据.

  冗余: 存储两倍数据,冗余降低了性能,但提高了数据的安全性.

  主键: 主键是唯一的. 一个数据表中只能包含一个主键. 你可以使用主键来查询数据.

  外键: 外键用于关联两个表.

  复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引.

  索引: 使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构.类似于书籍的目录.

  参照完整性: 参照的完整性要求关系中不允许引用不存在的实体.

 

MySQL的下载安装

 想要使用MySQL来存储并保存数据,则需要做几件事情:

  1.安装MySQL服务端

  2.安装MySQL客户端

  3. 客户端 连接 服务端

  4. 客户端 发送命令给 服务端MySQL 服务的接收命令并执行相应操作( 增删改查等)

 下载地址: 

https://dev.mysql.com/downloads/mysql/

 

3, 解压

 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如: E:mysql-5.5.570winx64

4. 添加环境变量

  将详细路径添加到环境变量中.用 ; 分割.

5. 初始化

  mysqld --initialize-insecure

6. 启动mysql服务

  mysqld # 启动MySQL服务

7.启动mysql客户端并连接mysql服务端 ( 新开一个cmd窗口 )

  mysql -u root -p  #连接mysql服务器

  上一述解决了一些问题,但不够彻底,因为在执行mysql 启动mysql服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务.

注意: --install前,必须用mysql启动命令的绝对路径

# 制作MySQL的windows服务,在终端执行此命令:

‘‘E:mysqlmysql-5.7.21-winx64inmysqld" --install

# 移除MySQL的windows服务,在终端执行此命令:

"C:mysqlmysql-5.7.21-winx64inmysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

# 启动mysql服务

net start mysql

# 关闭mysql服务

net stop mysql

 

windows 下登录设置密码

打开终端,输入mysql

输入mysql提供的函数: select user(); # 查看当前登陆的账号

当前登陆的默认账号为[email protected]

 

如果想切到root账号登陆
执行命令:

mysql -uroot -p

再查看当前用户:

select user();

管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登陆了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码.

设置密码

设置管理员root账号密码为123

C:....> mysqladimin -uroot -p password "123" # 设置初始密码,由于原密码为空,因为-p可以不用,注意这句话不起作用,请使用update mysql.user set authentication_string = password(‘‘) where User=‘root‘;

然后再登陆账号,不输入密码则会出现如下结果:

 mysql -uroot -p

再执行如下操作:

 mysql -uroot -p123

如果想将原始密码123,设置新密码为456

C:...> mysqladmin -uroot -p"123" password "456" # 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码.

依次执行如下操作:

mysql -uroot -p456

select user();

 

 

密码忘记---破解密码

跳过授权方式,直接登陆!!

1.以管理员身份打开cmd

2.停掉mysql服务端

C:...> net stop mysql

MySQL 服务正在停止.

MySQL 服务已成功停止.

3.执行如下命令跳过授权表

# 跳过授权表

C:..> mysqld --skip-grant-tables

4.再次查看

mysql -u root -p

  之前密码是456,现在可以跳过密码,直接登录. 

5.现在可以任意的更改密码,执行如下命令.

update mysql.user set authentication_string = password(‘‘) where User=‘root‘;

6.刷新权限

flush privileges;

7.退出mysql,执行命令:exit

8.让用户去加载权限,以管理员身份进入cmd,查看当前mysq进程

tasklist |findstr mysql  # 查看当前mysql的进程

9. 杀死当前的进程,执行如下命令.

taskkill /F /PID 2132 # 杀死当前的进程pid

10.再次执行如下操作,还原.

net start mysql

mysql -uroot -p

 

 

统一字符编码

进入mysql客户端,执行s

为了统一字符编码,请执行如下操作:

(1),my.ini文件是mysql的配置文件,

在E:mysqlmysql-5.7.21-winx64文件下创建my.ini文件

(2), 将如下代码拷贝保存.

[mysqld]
# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
basedir=E:mysqlmysql-5.7.21-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir= E:mysqlmysql-5.7.21-winx64data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

 

(3),以管理员身份重启服务,执行如下命令.

net stop MySQL

net start MySQL

(4), 在cmd中输入mysql进入mysql环境,执行s,显示如下信息,表示成功.

s

 

 



 
















以上是关于数据库-MySQL的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

硬核!管理mysql数据库的工具

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段