阅读目录
- 数据和数据库
- MySQL介绍
- MySQL的详细安装教程
- Windows版本:MySQLl的安装、启动和基础配置
- 下载
- 配置
- 环境变量
- 安装 和 启动MySQL服务端
- MySQL的卸载
- MySQL的Server端
- MySQL客户端
- Linux版本:MySQLl的安装、启动和基础配置
- Mac版本:MySQLl的安装、启动和基础配置
- MySQL常见的问题解决
- 安装、配置失败问题排查
- cmd 没有以管理员权限打开
- 没有开启服务器
- 忘记密码
- mysql 输入指令时,报ERROR
- 输入命令出错,如何终止退出
- MySQL的必备概念和命令
- 用户和用户权限
- 连接服务器
- 初识mysql 语句
数据和数据库
- 数据:
描述事务的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 - 计算机中的数据:
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
1 storyfull male 25 德国 计算机系
单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思
id name sex age adderess major # 字段
1 storyfull male 25 德国 计算机系 # 记录
-
为什么要用数据库:
(1)程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
(2)数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
(3)并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
(4)效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多 -
数据库(DataBase,简称DB):
数据库,顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享 -
什么是数据库管理系统(DataBase Management System 简称DBMS)
(1)在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键这就用到了一个系统软件—数据库管理系统,如:MySQL、Oracle、SQLite、Access、MS SQL Server
(2)MySQL主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。Oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。SQL Server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
(3)数据库:其实就是文件夹;数据库管理系统:就是一个软件;数据库服务器:就是对外专门提供数据的一个机器 -
数据库服务器,数据库管理系统,表与记录的关系(重点理解)
(1)表:student,scholl,class_list(即文件)
(2)数据库:employee_info(即文件夹)
(3)数据库管理系统:如MySQL(是一个软件)
(4)数据库服务器:一台计算机(对内存要求比较高) -
总结:
数据库服务器—运行—>数据库管理软件
数据库管理软件—>管理—>数据库
数据库—组织—>表,即文件夹—组织—>文件
表—存放—>多条记录,即文件—存放—>多行内容
-
数据库的发展史
MySQL介绍
-
数据库管理软件分类
管理数据的工具有很多种,不止MySQL一个。关于分类其实可以从各个纬度来进行划分,但是我们最常使用的分类还是根据他们:存取数据的特点来划分的,主要分为关系型和非关系型。可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构 -
MySQL
(1)MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
(2)MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
(3)MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
MySQL的详细安装教程
Windows版本:MySQLl的安装、启动和基础配置
下载
- 第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads
- 选择Community选项–>点击到MySQLCommunity Downloads–>选择MySQL Community Server
- 选择版本和操作系统版本
- 解压到当前下载的目标地址
- 打开解压文件,保证里面的目录文件完整如下:
(1)放置的路径必须是:全英文且不带空格的路径
(2)再次确定下,打开目录后是第一个文件夹是“bin”,是否含有“my-default.ini”配置文件
配置
- 配置“my.ini”文件:
打开目录,会看到my-default.ini配置文件,复制这个配置文件可以重命名为:my.ini (最主要)或者my.cnf;必须在当前路径下,注意文件名和后缀名必须一致!
- 将“my.ini”文件拖入到Pycharm中,请确认你的Pycharm默认编码是否是“uft-8”,拖入后可以到该文件内容如下:
- 然后将文件内容全部清除:
- 将如下配置文件内容,复制到Pycharm中
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-5.6.39-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-5.6.39-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
- 修改内容,将MySQL安装目录 和 存放目录 改成mysql开始的存放位置,详细步骤如下↓↓↓
(1)设置mysql的安装目录:看你的bin目录在哪里,直接将所在位置路径贴过来就可以↓↓↓
(2)设置mysql数据库的数据的存放目录:先双击你的data 打开,复制好路径,贴上就可以↓↓↓
(3)最后确认下,每一个末尾是否含有多余的空格
(4)特别注意:存放的路径,虽然是全英文,但是在windows下,千万要注意命名不要带上了转义字符,比如,路径写成了 :
E:\\mysql:\tool # \t是转义字符,windows 会理解成 E:\\mysql: ool ;这就多了空格导致错误
E:\\mysql:\bool # \b 也是是转义字符
- 注意:配置好的“my.ini”文件,以后不要随便用 记事本或者其他非 默认utf-8 的工具打开,导致编码发生改变!
环境变量
-
打开:高级系统设置–>高级–>环境变量
-
为MySQL添加环境变量的步骤
(1)win10 好像大部分软件安装都会自动帮你填充环境变量,比如python的安装,就会自动填充,不需要手动将pyhon执行文件路径复制到环境变量中!;但是MySQL不会自动配置,需要我们手动添加
(2)打开系统环境变量的path
(3)点击“新建”新建一个环境变量:添加自己的MySQL文件所在的bin目录,如下↓↓↓
安装 和 启动MySQL服务端
- 安装MySQL服务:以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install回车运行
- 启动MySQL服务端:
(1)以管理员身份在cmd中输入:net start mysql
(2)启动成功后,就可以登录MySQL了:
服务启动成功之后,就可以登录了,输入 mysql -u root -p(mysql5.6版本的,第一次登录没有密码,直接按回车过)
(3)如果以上步骤都一致的话,那么表示你已经成功安装了MySQL,如果任何一步失败,在安装后发生了配置错误,都需要卸载再重新安装,在发生错误的基础上直接修改都是不会成功的
MySQL的卸载
- 卸载一般是再你发现MySQL安装配置过程中出现错误,才去操作;成功的可以跳过,不用看
- 具体步骤如下:
MySQL的Server端
-
通过上述步骤,如果MySQL服务端已经安装成功并且服务端已经可以连接上,以后再操作MySQL时
注意:当我们每次用mysql启动的时候,那就不用太麻烦了,因为上述安装方法是把它做成一个系统服务,使用了“ mysqld install ”后,当在搜索里面输入services.msc就可以看到一个MYSQL了;就相当于安装一个软件,点击图标就可以运行;那么我们就可以这样管理MySQL↓↓↓ -
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
net start mysql# 关闭MySQL服务
net stop mysql
# 在windows操作系统上没有重启mysql服务的命令
# 如果要重启服务,只能先stop再start
- 演示MySQL server端 停止
- 一般装好后,电脑开机,MySQL server端 会自动开启
MySQL客户端
- 启动MySQL客户端的原理
(1)MySQL 5.6的版本root用户是不需要密码的,5.7之后的需要
- 关于密码
- MySQL的使用过程
(1)MySQL端如果没有被 命令停止,一般开机都会自动开启,所以只需在命令行输入 mysql -uroot -p 输入密码,开启服务端,然后操作即可
Linux版本:MySQLl的安装、启动和基础配置
- Linux版本
Mac版本:MySQLl的安装、启动和基础配置
- Mac版本
MySQL常见的问题解决
安装、配置失败问题排查
cmd 没有以管理员权限打开
- cmd 没有以管理员权限打开,安装时会报:“Install/Remove of the Service Denided!”;解决办法是,关闭,开启cmd时以管理员身份开启,即可!
没有开启服务器
- ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
忘记密码
- 方式一:
(1)彻底关闭mysql(注意:以什么方式启动的就要以什么方式把它关闭)
(2)在cmd中启动:mysqld skip-grant-tables (跳过所有的授权表)
(3)在cmd中登录:mysql
(4)输入两条命令:
update mysql.user set authentication_string = password(‘123’) where user = ‘root’ and host =‘localhost’
flush privileges 重新刷新权限
(5)tskill mysqld 干掉任务
(6)正常启动mysql
(7)mysql -uroot -p123 (不提倡这么写)
-方式二:
(仅限于刚刚安装在数据库的时候,如果对你有用的一堆数据已经存在了,
就不要用这种方法,就得用第一种)
1.在mysql的解压目录下新建一个my.ini配置文件
那么在my.ini配置文件里写上
在ini配置文件中注释有两种#或者;
[mysql]
skip-grant-tables (开头的–就不用要了)如果启动了就先关了,然后重新启动一下,登录后,my.ini就生效了
basedir = 路径
datadir = data路径 # 如果data指定要保存数据的目录,一定要记得初始化 mysqld initialize-insecure
完了把原先的那个数据data干掉。
mysql 输入指令时,报ERROR
- 可能是输入命令时大小写导致命令无法生效
- 输入完命令后没有以“ ; ” 结尾;记住如果没有在结尾输入分号,则表示命令还没结束
输入命令出错,如何终止退出
- 第一种情况:当输错命令(内容),如果想直接终止退出,以便重新输入?
解决方法是: 直接 输入\c 即可退出 - 第二种情况:在 输入 语法时,例如 insert into 表名 values ( 'minmax 前面已经输入了一个分号,当时没输完,就按了回车键,此时 无论如何 操作都退不出来的(\c 也是无效的)
解决方法:先补齐一个另一个分号 然后再 \c 即可退出
MySQL的必备概念和命令
用户和用户权限
- 在安装数据库之后,有一个最高权限的用户root;一般不会把root用户轻易的给别人,这样文件容易被修改
- 如何查看用户:进入mysql后输入
select user();
- 如何给当前用户设置密码,输入:
set password = password('123');
(1)set password = password(‘密码’); 相当于调用一个password函数,那么它会以加密的方式存储,如果直接“set password =” 则以明文的方式存储,这是非常危险且不提倡的写法
- 查看库/文件:不同权限的用户能查看到的库和内容是不一样,以下以root用户为例
show databases ;
- 创建用户
create user '用户名' @ '网段' IDENTIFIED BY '123';
- 查看创建用户的权限(所能操作的内容);
show grants for '用户名'@ '网段'; # grants 意思为:同意、允许、准许
- 给创建的用户授权:
grant all on 文件名.* to '用户名'@ '网段';
flush privileges; # 刷新使授权立即生效
(1)说明,可以先通过创建用户语句来创建用户,然后给它授权;也可以直接用授权语句来自动创建用户,即是,执行
grant all on 文件夹.* to '用户名'@ '网段' indentified by '密码';
就会自动创建一个输入的用户
连接服务器
- 我们的mysql客户端不仅可以连接本地的数据库;也可以连接网络上的某一个数据库的server端,只要对方提供IP地址和密码;然后输入:mysql -h192.168.12.87 -uroot -p123
初识mysql 语句
-
设想一下,当我们想要从文件中存取数据的时候,是一个非常繁琐的过程,主要是因为文件中所有的内容对我们来说是连续的,没有规则的。如果我们将数据按照规则存在一个文件中,在设计一种规则可以拼凑组合成我们需要的操作,并通过这些指示在文件中存取数据,那么操作数据是不是能够变得更加简单快速呢?这串规则就被我们成为SQL。
-
SQL : 结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ “S-Q-L”),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
-
SQL语言分为3种类型:
(1)DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE、DROP、ALTER
(2)DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
(3)DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
-
初识 sql 语句
# mysql的账号操作
# 进入mysql客户端
$mysql
mysql> select user(); # 查看当前用户
mysql> exit # 也可以用\q quit退出# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p # mysql 5.6默认是没有密码的
# 遇到password直接按回车键
mysql> set password = password('root'); # 给当前数据库设置密码# 创建账号
mysql> create user 'min'@'192.168.10.%' IDENTIFIED BY '123'; # 指示网段,和登录密码
mysql> create user 'min'@'192.168.10.5'; # 指示某机器可以连接
mysql> create user 'min'@'%'; # 指示所有机器都可以连接
mysql> show grants for 'min'@'192.168.10.5'; # 查看某个用户的权限 # 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3 # 某一具体用户信息# 给账号授权
mysql> grant all on *.* to 'min'@'%';
mysql> flush privileges; # 刷新使授权立即生效# 创建账号并授权
mysql> grant all on *.* to 'eva'@'%' identified by '123'
- DDL 语句 图示
(1)创建库、查询库:
(2)进入到某一个库中:
select database(); # 查看当前使用的库
use 数据库的名称 # 没有分号,相当于进入到数据库(文件夹)下
(3)创建表:
创建表,必须进入到某一个库中,才能执行该操作
(4)查看表:
(5)删除表:
(6)查看表结构:
-DML语句图示:
(1)数据的增加:插入一条数据
(2)数据的查看:查询数据
(3)数据的修改:
(4)删除数据:
- 虽然是mysql的基础,但是很有必要整理下,通过cmd操作感觉有点麻烦,后期会讲图形化界面