Learning-MySQL【1】:数据库初识及 MySQL 的安装
一、什么是数据
数据(Data):描述事务的符号记录,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
qiuxi male 安徽 软件工程
但这样的单纯一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个数据的含义:
id name sex age adderess major # 字段
qiuxi male 安徽 软件工程 # 记录
如果这样表示的话,就能够了解一个人的信息了,让别人一看就清楚了。这里被定义的各个数据的含义,就称之为字段,这条数据信息,称之为一条记录。
二、什么是数据库
之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上。如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有什么问题。但需要考虑的问题是:程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,垂直扩展是有极限的。于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。需要注意的是,虽然我们将程序的各个组件分布到各台机器,但各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件,即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理......为了远程访问并处理这台共享机器上的文件,我们必须为我们的程序额外写一段代码,完成如下功能:
# 1、远程连接
# 2、打开文件
# 3、读写(加锁)
# 4、关闭文件
我们写任何程序都需要有这段代码,于是我们提取这段代码,写成一个专门的处理软件,这就是数据库管理软件的由来,但它解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,能把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。
数据库(DataBase,简称DB),顾名思义就是存放数据的仓库,只不过这个仓库是在计算机存储设备上。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
三、数据库管理系统
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一系列以统一的方式管理和维护数据库中数据的软件集合。它的用途是科学地组织和存储数据、高效地获取和维护数据,例如:MySQL、Oracle、DB2、SQL Server 等
MySQL 是目前最流行的关系型数据库管理系统之一,由瑞典 MySQLAB(AB,在瑞典语中表示 “股份公司”,是 “aktiebolag” 的首字母缩写)公司开发,目前属于 Oracle 公司。在 Web 应用方面,MySQL 是最好的 RDBMS(Relational Database Manasgement System,关系数据库管理系统)应用软件之一。
Oracle 是美国 Oracle 公司开发的一种适用于大型、中型和微型计算机的关系数据库管理系统。提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户端/服务器(Client/Server)或 B/S 体系结构的数据库之一。
DB2 是 IBM 公司研制出的一种关系型数据库管理系统,分别在不同的操作系统平台上服务。DB2主要应用于大型应用系统,具有较好的可伸缩性,可以支持从大型机到单用户环境,应用于OS/2、Windows等平台下。
SQL Server 是美国微软公司开发的一个关系数据库管理系统,以 T-SOL 作为其数据库查询和编程语言。SQL Server 采用二级安全验证、登录验证以及数据库用户许可验证等安全模式。
四、数据库服务器,数据库管理系统,表与记录的关系(重点理解)
数据库说白了就是文件夹
数据库管理系统就是一个软件
数据库服务器:就是对外专门提供数据的一个机器
表:student, scholl, class_list(即文件)
数据库:lzsh_info(即文件夹)
数据库管理系统:如MySQL(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器---运行--->数据库管理软件
数据库管理软件--->管理--->数据库
数据库---组织--->表,即文件夹---组织--->文件
表---存放--->多条记录,即文件---存放--->多行内容
五、MySQL 简介
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
1、MySQL 是什么?
MySQL 就是一个基于 socket 编写的 C/S 架构的软件
客户端软件:
MySQL 自带:如 mysql 命令,mysqldump 命令等
Python 模块:如 pymysql
2、数据库管理软件分类
关系型:如SQLite,DB2,Oracle,Access,SQL Server,MySQL,注意:SQL语句通用
非关系型:MongoDB,Redis,Memcache
可以简单的理解为:关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构
六、MySQL 的安装
1、在官网下载 MySQL5.6(https://dev.mysql.com/downloads/mysql/5.6.html#downloads),得到一个压缩包
2、将下载的压缩包解压后的整个目录放在自己喜欢的位置,我的放在 D 盘的 Program Files 下,并改名为 MySQL5.6

3、进入MySQL5.6 目录,将里面的 my-default.ini 文件复制一份,并命名为 my.ini

4、打开 my.ini 文件将里面的 basedir 前面的 # 取消(取消注释),将其值设置为我们解压后的 MySQL5.6 根目录路径;将 datadir 取消注释设置为 MySQL5.6 里的 data 目录路径,这是存放数据的路径。并且我还设置了字符编码为utf8(注意:MySQL 中的 uft8 编码中间没有横杠,不能写成 utf-8)

5、安装 MySQL 服务并启动:以管理员身份打开 cmd 窗口后,将目录切换到你解压文件的 bin 目录

再输入mysqld install 回车运行就行了

接着就是输入 net start mysql 启动服务,提示启动成功(注:MySQL5.7 以上版本默认没有 data 目录,这里会启动不成功,需要手动生成 data 目录)
MySQL5.7 生成 data 目录,执行:mysqld --initialize-insecure --user=mysql

6、打开即可登录 MySQL 数据库,还在命令模式下,将目录切换到自己的 bin 目录下。输入 mysql -uroot -p,默认是没有密码的。回车进入,root是用户名

7、配置环境变量
配置好环境变量之后,就可以直接在cmd中输入 mysql -u root -p 打开MySQL数据库,不用进入 bin 目录,当然你的服务必须启动先,不然还是不行。可以将服务设置为开机自启动(Windows 系统下 MySQL 安装后默认是自启动)

到这里 MySQL 就算是安装完成了,下面来测试一下,接着上面的命令窗口直接输入show databases; ,表示查看所有的数据库,注意不要忘了分号,在 MySQL 中表示语句的结束

再测试环境变量:关闭命令窗口,重新打开一个新的 cmd 命令窗口直接输入 mysql -u root -p 就能进入说明环境变量已经配置正确,如图:

七、为 MySQL 设置修改密码
方法1: 用 SET PASSWORD 命令
首先登录 MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('000000');
方法2:用 mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 000000
方法3:用 UPDATE 直接编辑 user 表
首先登录 MySQL。
mysql> use mysql;
mysql> update user set password=password('000000') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记 root 密码的时候,可以这样
以 Windows为例:
1. 关闭正在运行的 MySQL 服务。
2. 打开 cmd 窗口,转到 bin 目录。
3. 输入 mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证。
4. 再开一个 cmd 窗口(因为刚才那个窗口已经不能动了),转到 bin 目录。
5. 输入 mysql 回车,如果成功,将出现 MySQL 提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("000000") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名 root 和刚才设置的新密码 000000 登录。

Learning-MySQL【1】:数据库初识及 MySQL 的安装的更多相关文章
- MYSQL之数据库初识、安装详解、sql语句基本操作
目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(Data ...
- MySQL 之数据库初识
一 数据库概述 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用. 数据库是长期存放在计算机内.有组 ...
- mysql的数据库存放的路径以及安装路径
1.简单查看路径 1.查看数据库的存放路径 进入mysql终端mysql>show variables like '%datadir%'; 2.查看文件安装路径 [root@hadoop01 e ...
- 数据库初识--从MySQL 出发
要学Web 开发,也得先对数据库有所了解呀.数据库分门别类,多种多样,目前我选择了 MySQL . 看了 MySQL,觉得数据库处理也不是很难,主要就是一些对数据的处理,MySQL 主要就是一些命令的 ...
- mysql之数据库基本概念(mysql学习笔记一)
数据库系统 数据库管理系统(DBMS)+数据库(DATABASE)(+数据库管理员) DBS=dbms+db 定义: 大量信息进行管理的高效解决方案,按照数据结构来组织.存储和管理数据的仓库 关系 ...
- scrapy 管道里面使用mysql插入数据库 python操作mysql
# -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to t ...
- Mysql 5.* 数据库备份及导入
作者:邓聪聪 倒出数据文件 1) 导出数据和表结构: 进入数据库查看表结构 msql -u用户名 -p密码 msql -u用户名 -p密码 -S /var/lib/mysql/mysql.sock ...
- Mysql:数据库导入导出
Mysql:数据库导入导出 Mysql数据库导出 mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名 1.mysqldump是在cmd下的命令,需要在linux命令行 ...
- (3.15)mysql基础深入——mysql默认数据库/系统数据库
(3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...
随机推荐
- JavaScript---设计模式总结
写了两篇设计模式的东西后,感觉不是很完美,决定闭关修炼,同时写下笔记 重申:设计模式很有用! 这里列一个设计模式的目录防止漏了某个东西(未完成的没有链接) 单例模式 策略模式 代理模式 迭代器模式 发 ...
- myEclipse导入现成项目出现错误 【申明来源于网络】
myEclipse导入现成项目出现错误 [申明来源于网络] 原地址:http://blog.sina.com.cn/s/blog_6d7703400100znh6.html file–>impo ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- 分析Hello2代码
代码如下String username = request.getParameter("username"); if (username != null && us ...
- vue:不同环境配置不同打包命令
修改prod.env.js 'use strict'const target = process.env.npm_lifecycle_event;if (target == 'build') { // ...
- python练习题-day11
1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), 要求:登录成功一次,后续的函数都无需再输入用户名和密码 flag=False def wrapper(fun): def inn ...
- 2、jeecg 笔记之 t:dictSelect 或 t:dgCol 自定义字典
1.需求 先说一下需求场景吧,我们知道 jeecg 中提供了下拉,其中包含两种使用场景: 一种是直接通过 t:dictSelect 使用,再就是 t:dgCol 用于表头的列表工具条标签: 总之就是 ...
- Apache 2.4.27外网访问403(Forbidden)错误
httpd.conf <Directory /> AllowOverride none #Require all denied 注释这句 Allow from all Require al ...
- Linux下批量杀掉筛选进程
在做项目的时候,由于情况要求,需要把服务器上符合某一条件的进程全部kill掉,但是又不能使用killAll直接杀掉某一进程名称包含的所有运行中的进程(即我们可能只需要杀掉某一类含有特定参数命令的进程) ...
- JAVA:IDEA使用Junit(3)
1.配置 File ——> Project Structure ——> Libraries ——> + ——>搜索Junit类库 确认ok即可 2.编辑项目 选择创建 配置生成 ...