(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 数据库名;
操作数据表
操作表记录
(day33)数据库的更多相关文章
- JSP应用开发 -------- 电纸书(未完待续)
http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术 第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级
一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- 在SQL2008查找某数据库中的列是否存在某个值
在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型: ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- SQL Server2014 SP2新增的数据库克隆功能
SQL Server2014 SP2新增的数据库克隆功能 创建测试库 --创建测试数据库 create database testtest use testtest go --创建表 )) --插入数 ...
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
随机推荐
- 认识Airflow的DAG
前文Airflow的第一个DAG已经跑起来了我们的第一个任务. 本文就来丰富这个任务. 回顾我们的任务内容 我们定义了DAG的名称为Hello-World, 这个叫dag_id, 补充说明descri ...
- CDH6.3.0 - Cloudera Enterprise 6 Release Guide 安装准备篇
一.安装之前 Cloudera管理器的存储空间规划 ClouderaManager跟踪许多后台流程中的服务.作业和应用程序的指标.所有这些指标都需要存储.根据组织的大小,此存储可以是本地的或远程的,基 ...
- Airflow自定义插件, 使用datax抽数
Airflow之所以受欢迎的一个重要因素就是它的插件机制.Python成熟类库可以很方便的引入各种插件.在我们实际工作中,必然会遇到官方的一些插件不足够满足需求的时候.这时候,我们可以编写自己的插件. ...
- android字母索引实现ListView定位
最近闲的很,没什么事干 ,在玩手机的时间看到android系统自带的那个通讯录软件对联系人的快速定位功能. 感觉这个功能也比较实用自己就试着自己去实现. 虽然网络上还是有大牛封闭好了的框架,但是如果 ...
- mapper操作数据的同时返回操作后的值
<insert id="insertSelective" parameterType="com.test.entity.business" keyProp ...
- Mysql触发器实例分析
所谓触发器,就是在定义在表对象上.当触发器所在的表出现指定的事件时,会触发对应表的delete update insert的操作.说的有点绕口,其实就是到监视某种情况,然后去触发某种操作. 触发器是如 ...
- String 用法 简单API
明天天梯赛选拔,怕不是STl忘到姥姥家去了,赶紧复习一下 构造str string s = "fuckyouRMA"; string s1(s, 2); de(s1); strin ...
- Spring IOC(3)----bean实例化
前面一节说到invokeBeanFactoryPostProcessors方法的调用来注册bean定义,这次来看看finishBeanFactoryInitialization这个方法实例化非懒加载的 ...
- VirtualBox 启动时提示“获取 VirtualBox COM 对象失败”的解决
昨天给电脑打了一堆补丁和更新,今天启动 VirtualBox 的时候提示 “获取 VirtualBox COM 对象失败”,好在百度到了 CSDN 上的一篇文章解决了这个问题. 错误详情 “获取 Vi ...
- CSS动画,2D和3D模块
CSS3提供了丰富的动画类属性,使我们可以不通过flash甚至JavaScript,就能实现很多动态的效果.它们主要分为三大类:transform(变换),transition(过渡),animati ...