mysql:数据库 存储数据 文件处理就可以将数据永久存储
问题: 1、管理不方便 2、文件操作效率问题 3、一个程序不太可能就运行在同一台电脑上
提高计算机性能的方式: 1、垂直扩展:指的是更换性能更好的硬件 2、水平扩展:指的是添加更多的计算机 把任务分配给每一台(分布式计算) 分布式计算的好处 1、其中某一台挂了,不会导致整个系统瘫痪 稳定性高 2、理论上性能可以无限扩展 分布式计算其实也是整体 数据需要被共享 需要socket技术 共享就存在竞争问题 加锁处理 文件存取效率问题
数据库 本质上就是一套软件 由服务器端 和客户端组成 C/S B/S 早些年 没有数据库的时候 要自己写一套socket 解决上面问题 于是有了数据库软件公司
目前常见的数据库: 关系型数据库:数据与数据之间可以建立关联关系(用户数据和购买信息) SQLServer:仅支持windows Mysql: 免费 开源 性能好 mysql 先后被sun 和 Oracle收购 Oracle: 最牛的数据库 收费高 DB2: IBM 收费 一般与计算机绑定销售 非关系型数据库:速度快 key value 存取 MongoDB redis mencache 数据库相关的概念 数据 用于记录某事物状态的符号 或别的形式 数字 音频 age=20 记录 就是一个事物的典型特征的组合 在文件中体现为一行文本 yyh,20,man,180 表 就是一个个文件 库 就是一个文件夹 数据库管理系统(DBMS)就是一个软件用来管理库的 C/S程序 数据服务器 运行着DBMS的计算机称为数据库服务器
装MYSQL 1、进入官网主页(www.mysql.com) 2、选DOWNLOADS 3、选Community社区版 Enterprise企业版 4、找到MySQL Communlty Server 社区服务器 5、老版本5.6版本和位数比较稳定 6、选不用注册直接下载(no thanks,just start my download) 7、打开cmd 加入环境变量path里面 文件bin的存储路径 8、要用管理员权限 第一条:cd + 存放文件bin的路径 9、接着 mysql -uroot -p -hlocalhost -P3306(-u是用户名,root是根权限最大-p(password)刚开始没有密码-hlocalhost表示主机的ip,-P3306Mysql的默认端口,不推荐改) 10、没有密码 摁空格 进入 show databases;查看数据,数据都放在一个表中 quit、exit 退出 关闭服务器程序 1管理员运行里的cmd tasklist | findstr mysqld 查找有没有正在运行的 taskkill /f /pid 上面中间的数字 mysqld --install系统服务注册成功 计算机中的管理-服务-mysql(通过右键mysql的属性可以调mysql的启动类型) 修改默认密码 设置密码 mysqladmin.exe 用于设置密码 mysqladmin -uroot -p旧密码 password 新密码
破解密码 1.删除存储密码的文件 2.重装mysql 3.可以在启动服务器时 告诉他 让他不要读取密码文件 1.mysqld -skip-grant-tables 2.无密码登录服务器 3.使用update 来更新你的密码 在msyql.user表中 在客户端 update mysql.user set password = password("321") where user = "root" and host="localhost"; mysql中的user文件改什么用set来告诉他where添加条件只改名字叫root那个用户在本机上用这个密码,在别的计算机上用不同的密码) 4.重启服务 验证新密码
安装mysql得到两个程序 1.服务器程序 存取数据时服务器的工作 2.客户端程序 命令服务器来完成存取工作 客户端将命令发送给服务器 服务器解析执行命令 返回客户端要的数据
服务器为了保证数据安全需要进行用户验证 默认有一个root 账户 默认没有密码 不安全 需要修改密码: 在服务器的终端中执行 mysqladmin.exe -u要改的用户名 -p旧密码 password 新密码 在服务器上执行命令时 如果看到Install/Remove of the Service Denied! 说明权限不够 得用管理员身份运行 如果忘记密码 要破解 也需要在服务器终端启动mysql服务 并且需要添加跳过授权表的参数
mysql -uroot -padmin 用mysql自带的客户端登录服务器 -u 用户名 -p 密码 -h 服务器的ip -P端口号 在本机上执行客户端不需要指的 -h -P
常见sql命令 show databases; 查看所有数据库名称
use 数据库名称 选择某个数据库 就是进入文件夹
quit or exit 退出客户端
以上的指令 只有两个是在服务器端执行 mysqld mysqladmin
注册系统服务 1.添加环境变量 2.注册系统服务 mysqld --install
mysql基础 数据库服务器中存放的是 库(文件加) 表(文件) 表里面是记录(一行数据)
库相关 创建 create database 数据库名 charset 编码名称 修改 alter database 数据库名 charset gbk 查 show databases; 查看所有数据 show create database 数据库名 查看建库语句 删除 drop database 数据库名
表相关 创建 create table t1(id int,name char); 修改 改结构 alter table 表名 add | drop | modify | change add 后面跟 字段名 数据类型 drop 后面跟 字段名 modify 后面跟 字段名 新类型 change 后面跟 旧字段名 新的字段名 新类型 该属性 编码 alter table t1 charset gbk; 表名 rename table 旧表名 to 新表名 查 show tables; show create table 表名 查看建表语句 desc 表名 查看表结构(字段) 删除 drop table 表名 truncate table 表名,重建表(清空数据) 记录相关 添加 insert into 表名 values(值1...),(值1....).... 插入时注意 值得顺序 和 类型必须与表结构一致 修改 update 表名 set 字段名=新的值 where 条件 可以同时修改多行 用逗号来隔开字段 没有条件就全改 查 select *|字段名 from 表名 *表示所有字段 删除 delete from 表名 where条件 没有条件就全删
mysqld -skip-grant-tables
net start mysql mysqld没反应的解决方法
启动时发现无法启动程序缺少计算机丢失MSVCP100.dll的问题 1、重启 2、在c盘windows中system32找到这个文件在复制过去