目录
Mysql
一、数据库是什么?
字面意思:存数据的仓库
二、为啥使用数据库?(*****)
Excel的缺点:
1.管理不了大量的数据(10w量级以上的数据)
2.不能并发操作同一个数据表格
3.数据库支持一些高级的操作:分组,连表等
三、数据库的分类(*****)
1.关系型数据库
对每一列的数据类型都有约束,ID(整型)name(字符串)等
MySQL,SqlServer,oracle,sqlite,maridb等
MySQL是用的比较多,主要是免费
SqlServer微软的,只有大学、*用的比较多
oracle:甲骨文的,收费,金融公司(安全度高)、阿里
sqlite:小型的文件数据库,自己玩一玩
maridb:和MySQL一个人开发的
2.非关系型数据库
memcache没有解决
mongodb,文档型数据库,用的不太多,解决了掉电内存数据丢失的问题
Redis:微博使用,解决了掉电内存数据丢失的问题
用{“key”:‘value’}进行存储数据
3.关系型与非关系型区别:
关系型数据库,把数据存在硬盘中
非关系型,把数据存在内存中(速度快)
四、数据库MySQL的架构
类似于socket的客户端和服务端
流程:
1.MySQL服务端先启动,监听在某一个特定的端口(3306)
2.MySQL客户端连接服务端
3.MySQL客户端就可以发送操作命令,去操作服务端的数据。
五、数据库的安装
windows 安装:去官网找资料(学习的方法)安装,
MySQL软件官方下载地址(https://dev.mysql.com/downloads/mysql/),个人感觉下载压缩包版比下载安装包办的要好,因为安装包版的默认安装路径为系统盘,整个数据库有1.8G左右,太占系统盘存储。
1.安装步骤:
1.解压
想将数据库安装到哪个盘就将数据库解压到哪个盘(独立的一个文件夹)
2.添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》(win10直接搜环境变量就可以到这一步)【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
bin下面的mysql是客户端,mysqld是服务端
3.初始化
在cmd界面输入mysqld --initialize-insecure对数据库进行初始化。
4.启动MySQL服务
输入:mysqld
5.启动mysql客户端并连接到mysql服务端
输入指令:mysql -u root -p
6.将mysql服务制作成windows服务
制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
注意:引号内的路径是bin目录下的mysqld路径必须是绝对路径。
2.启动mysqd的两种方式:
1.启动服务cmd端输入 net start mysql
停止服务cmd端输入net stop mysql
2.如下图,在计算机的计算机管理里面手动进行启动、停止、重启服务端!
以上是5.6、5.7版本安装的全部过程。
3.密码的修改操作
在上面的流程走完之后软件的root权限密码默认为空,第一次修改密码时输入下面指令(在cmd窗口,管理员身份运行cmd,在cmd下输入,不是在mysql下输入):
mysqladmin -uroot -p password "要设置的密码"
第二次以及以后修改密码则输入下面的指令
mysqladmin -uroot -p"原密码" password "新密码"
4.如果密码忘掉了,修改密码方法:
1)5.6版本mysql修改密码方法
1 关闭正在运行的MySQL服务。
2 打开DOS窗口,转到mysql\bin目录。
3 输入mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5 输入mysql回车,如果成功,将出现MySQL提示符 >。
连接权限数据库: use mysql; 。
6 改密码:update user set password=password(“123”) where user=“root”;(别忘了最后加分号) 。
7 刷新权限(必须步骤):flush privileges; 。
8 退出 quit。
注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
2)5.7版本
1 关闭mysqld的服务
2 在cmd中执行:mysqld --skip-grant-tables =》 不用密码就可以登录,绕过密码验证的权限
3 在cmd中执行:mysql =》 mysql -uroot -p
4 执行如下sql指令:
(特别注意,此处5.7版本与5.6不一样)update mysql.user set authentication_string=password('') where user = 'root';
5 flush privileges; (一定要操作)
6 重新启动mysql服务
六、初识Mysql
SQL指令
1)操作数据库
查看当前用户: select user();
数据库的命名规范:
可由字母、数字、下划线、@、#、$组成,区分大小写,不能使用关键字如create 、select等,不能单独使用数字,最长不能超过128位
增 create database 数据库名称 charset utf8;
删 drop database 数据库名称;
改:先删除再添加,如果数据库有数据的话,直接drop会导致数据库中的数据丢失,在线上环境,不能够直接删除数据,在删除数据之前需要先进行备份
查 show databases;
使用数据库 use 数据库名;
确定当前使用的数据库: select database();
查看所有用户权限
select * from mysql.user\G;
查看某个用户的权限
select * from mysql.db where user='用户名'\G;
用户信息存放在一个名为mysql.user的表里
select user,password,host from mysql.user;