一、初识数据库
目录
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
- 解压
如果想要让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'
上一篇: 苹果-桔子问题
下一篇: Java 策略模式与模板方法模式相关总结