(day33)数据库
目录
1. 数据库是什么
存数据的仓库
2. 为什么使用数据库
- 管理大量数据
- 支持并发操作
- 支持高级的操作,比如分组,链表等
3. 数据库的分类
1. 关系型数据库
表结构存储,对每一列的数据的类型会有约束,数据存在硬盘中
Mysql,maridb(免费,企业用的多),Sqlserver(大学、政府),Oracle(金融公司,阿里),sqlite(自己玩的小型数据库)
2. 非关系型数据库
key-value存储,对于数据没有约束,数据存在内存中
memcache(十年前的产品,未能解决断电即消失的问题),mongodb(文档型数据库,爬虫),redis(微博)
4. mysql的架构
类似于socket的客户端和服务端
- 流程
- MySQL服务端先启动,监听在某一个特定的端口(3306)
- MySQL客户端连接服务端
- MySQL客户端就可以发送相关的操作命令,去操作服务端存储的数据
5. mysql的安装
1. windows的安装
- 下载:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/ - 解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:E:\mysql-5.7.16-winx64
- 添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】 - 初始化
mysqld --initialize-insecure
:创建data目录, 初始化的数据 - 启动MySQL服务
mysqld
:启动MySQL服务 - 启动MySQL客户端并连接MySQL服务
mysql -u root -p
: 连接MySQL服务器
2. windows服务
上一步可以运行MySQL,但不够彻底,执行mysql
执行服务端会阻塞住,因此要将MySQL添加到windows服务
添加windows服务
cmd运行命令:
"e:\mysql-5.7.16-winx64\bin\mysqld" --install
注意:--install前,必须用mysql启动命令的绝对路径
启动MySQL服务
cmd运行命令:
net start mysql
关闭MySQL服务
cmd运行命令:
net stop mysql
移除windows服务
cmd运行命令:
"e:\mysql-5.7.16-winx64\bin\mysqld" --remove
注意:这里的路径也必须是绝对路径
3. 设置密码
mysql -u root -p
: 管理员root用户 ,默认没有密码
- -u:user 用户名
- -p:password 密码
- -h:host 主机名或IP
mysql -uroot -p -h 192.168.1.10
- -P:port 默认是3306
管理员登录的情况下:
set password = password('密码');
# 给当前数据库设置密码没有登录的情况下:
mysqladmin -uroot password "123"
:设置初始密码 由于原密码为空,因此-p可以不写mysqladmin -uroot -p "原密码" password "新密码"
:修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密
4. 忘记密码
- 关闭mysqld的windows服务
- cmd中执行:
mysqld --skip-grant-tables
(不用密码就可以登录,绕过密码验证的权限) - cmd中执行:
mysql
- cmd中执行:
update mysql.user set authentication_string=password('新密码')where user = 'root';
- cmd中执行:
flush privileges;
- cmd中执行:
tskill mysqld
或taskkill -f /PID7832
- 重新启动
5. 新建账号
MySQL> create user 'nick'@'192.168.10.%' IDENTIFIED BY '123';# 指示网段
MySQL> create user 'nick'@'192.168.10.5' # 指示某机器可以连接
MySQL> create user 'nick'@'%' #指示所有机器都可以连接
MySQL> show grants for 'nick'@'192.168.10.5';查看某个用户的权限
# 远程登陆
$ MySQL -uroot -p123 -h 192.168.10.3
# 给账号授权
MySQL> grant all on *.* to 'nick'@'%';
MySQL> flush privileges; # 刷新使授权立即生效
# 创建账号并授权
MySQL> grant all on *.* to 'nick'@'%' identified by '123'
修改mysql的密码:
初识mysql
SQL指令都要加;
操作数据库
增
create database 数据库名称 charset utf8; # 命名规范 # 1. 可以有字母、数字、下划线、@、#、$ # 2. 区分大小写 # 3. 唯一性 # 4. 不能使用关键字 # 5. 不能单独使用数字 # 6. 最长128位 show create database 数据库名;
删
drop database 数据库名称;
改
# 删除在增加 # 如果数据库中有数据的话,直接drop会导致数据库的数据丢失 # 线上环境,不能直接删除数据,在删除之前,需要进行备份
查
show databases;
使用数据库
user 数据库名;
操作数据表
操作表记录
最新文章
- 【十大经典数据挖掘算法】PageRank
- SQL排序问题
- linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本
- .NET 基础 一步步 一幕幕 [.NET 简介]
- Kafka 技术文档
- hadoop 2.6全分布安装
- kvm 克隆虚拟机
- js 定时器的使用。 setInterval()
- 加载gif动态图的三种方式
- AJAX异步调用
- Geodatabase介绍
- delphi 保存 和 打开 TREE VIEW的节点已经展开的状态
- 类比的方法学习Performance_schema
- 使用angular4搭建博客(一)
- Hadoop MapReduce工作原理
- C# 数据库并发的解决方案(通用版、EF版)
- 利用Laplacian变换进行图像模糊检测
- 微信小程序-实现分享(带参数)
- 如何在C#程序中模拟域帐户进行登录操作 (转载)
- pythonl练习笔记——爬虫的初级、中级、高级所匹配的知识
热门文章
- 2018年蓝桥杯ava b组第一题
- telnet命令问题解决-bash: telnet: command not found
- Build step 'Invoke top-level Maven targets' marked build as failure Finished解决
- java虚拟机体系分析
- JS 生成唯一值UUID
- 前端get和post那些事
- spring5 源码深度解析----- AOP代理的生成
- Mac 安装node npm cnpm vue 以及卸载 node 和 npm 的方法 清空npm缓存的方法
- MySQL8身份验证问题解决
- 深入研究BufferedReader底层源码