一、初识数据库
目录
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中执行:
tasklist | findstr mysqld
或taskkill -f /PID 进程号
- 重新启动
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'