数据库-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出现错误: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密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段