下载安装
mysql官网下载地址:
https://dev.mysql.com/downloads/mysql/
下载需要的版本的解压版或者安装版
解压
修改配置文件my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="D:\Java\mysql-5.7.15-winx64\mysql-5.7.15-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\Java\mysql-5.7.15-winx64\mysql-5.7.15-winx64\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
以管理员身份打开cmd,进入mysql的bin目录下
安装mysql:mysqld install
初始化mysql:mysqld --initialize-insecure --user=mysql
启动MySQL服务: net start mysql 或者在任务管理器的服务选项中找到mysql这个服务右键启动
停止MySQL服务: net stop mysql 或者在任务管理器的服务选项中找到mysql这个服务右键停止
重启MySQL服务:在任务管理器的服务选项中找到mysql这个服务右键重新启动
启动服务后,开始配置环境变量
1,右键我的电脑,点击属性
2,点击左上角的高级系统设置
3,点击环境变量
4,在系统变量下找到path变量,选中点击编辑
5,点击新建,把mysql的bin目录的路径添加进去
安装完了,一般来说密码是为空的
登陆:mysql -uroot -p
修改密码:mysqladmin -uroot -p旧密码 password 新密码
忘记密码解决:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password(“123”) where user=”root”;(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
数据库概述
数据库与文本,Excel,xml之间的对比:
数据库方便检索
存储的量不够---Excel
文本可以存储大量数据,但是打开慢,内存受限 --- 分布式内存
sql语句----效率
DBA --- 数据库架构师
数据库类型
结构化 --- mysql --- 关系型
半结构化 --- key-value ---
非结构化 --- 视频,图片 --- 二进制 --- path --- manggodb,hbase
两个关系型的数据库对比:
oracle --- 成本高,有硬件要求,伸缩性较差,效率高
mysql --- 开源,单进程多线程,多用户,c/s
流程:
- 启动服务
- 加载配置文件
- 生成实例
- 建立链路
- 请求会话
- 响应请求
基本操作:
mysql -h -u -p
show databases;
mysql自带的库表
1,information_schema --- 数据源表
2,mysql – 用户,权限
3,performance_schema – 性能优化
配置文件
my.ini
- 字符集
- 安装目录
- 数据存放目录
- 连接数
- 端口
- 引擎
show variables like "character%"; --- 查看字符集
通过修改配置文件,修改字符集
临时修改,维持本次连接
set 。。。
设计数据库
存储引擎:Innodb – 事务,写,myisam – 查询,读
读写分离
并发
锁 --- 表/记录
隔离
数据库操作
https://www.cnblogs.com/bluealine/p/7832219.html
数据库备份与恢复
备份
导出sql文件:命令---mysqldump,Navicat可以直接右键导出
mysqldump -uroot -p test >F:\test.sql
备份物理文件:opt
恢复
mysql -uroot -p test<F:\test.sql
mysql数据类型
整数:(5种):1,2,3,4,8(字节)
查看表结构:
desc inttype;
查看sql模式
select @@sql_mode;
--无法插入,切换sql_mode模式
set sql_mode = 'ansi';
--插入成功,但被截断
insert into inttype values(128);
小数(两种):
- 精确小数类型(decimal)
- 浮点型(float,double)
CREATE TABLE `per` (
`per` decimal(4,3) NOT NULL,
PRIMARY KEY (`per`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
范围:-9.999-9.999
字符串:
定长:char
变长:
- varchar
- text
- tinytext
- text
- mediumtext
- longtext
日期类型:
- date
- time
- year
- datetime
- timestamp
获取系统时间:select now()
获取年份:select year(now())
delect和truncate的区别,delect会保留自增序列,truncate会清空自增,重新开始
datetime和timestamp的区别:timestamp的取值范围从1970-01-01开始 根据当地时区自动转换
查看时区:show variables like “time_zone%”;
跟数据库系统有关系
复合类型:
- enum --- 可以被穷举的
- set ---
creat table person(
sex enum('male','female'),
interest set('sing','dance','swim','study')
);
可以约束输入的参数
二进制类型:存储0和1的字符串
选择类型的原则:
- 选择合适的
- 尽可能短
作业:IP存储
约束:
主键约束
- 单字段主键
- 多字段主键
自增:
后续添加。。。
参考:
https://www.cnblogs.com/bluealine/p/7832219.html
https://dev.mysql.com/downloads/mysql/
https://blog.csdn.net/th_num/article/details/71402801