第9课 数据库
一、数据库介绍
1、什么是数据库?
定义:数据库是存放数据的电子仓库。
2、是以某种方式存储百万条,上亿条数据,提供多个用户访问共享。
3、每个数据有一个或多个api用于创建,访问,管理和复制所保存的数据。
4、系统中很多动态数据都存储在数据库中,需要通过访问数据库才能显示;
二、数据库的类型
1、关系型数据库
定义:数据库中表与表之间存在某种关系,数据存储在不同的表中
常见的关系型数据库:
(1)db2 IBM 公司
2)oracle oracle 公司
(3)mysql oracle公司收购 (我们学习的mysql)
(4)sql server
特点:
a、安全
b、保持数据的一致性
c、实现对表与表进行复杂的数据查询
2、非关系型数据库
定义:通常数据是以对象的形式存储在数据库中
常见的非关系性数据库:
1、hbase (列模型)
2、redis (键值对存储)
3、mongodb (文档类型)
特点:
a、效率高
b、容易扩展
c、使用更加灵活
三、mysql介绍定
1、mysql的定义
mysql是关系型数据库管理系统,我们常说的xxx数据库就是指xx数据库管理系统。
2、mysq数据库是有瑞典mysql db公司开发,目前属于oracle 公司,
3、在web应用方面(bs架构上),mysql是最好的关系型数据管理系统
4、特点:
a.体积小
b.开源,免费
c、使用c++编写
d、支持多系统
e、支持多引擎
f、msyql与其他工具组合可以搭建免费的网站系统
lamp=linux+apache+mysql+php
lnmp=linux+nginx+mysql+php
5、mysql的应用结构:
(1)单点数据库:使用于小规模应用(我们现在学的)
2)复制:适用于中小规模的应用
(3)数据库集群,适合大规模的应用
比如:mgr集群,三主三从,一主三从;
6、数据库中术语:(1)数据库 (2)数据表 (3)列 (4)行 (5)值 (6)字段名 (7)字符类型 (8)冗余 (9)主键 (10)外键 (11)视图 (12)索引 (13)单表 (14)多表
(15)存储
数据库之搭建
1、rpm -qa|grep 服务名称
2、将所有msyql的包删除干净
删除方法:
(1)yum remove mysql * 删除linux中的数据库
(2)yum erase 包名 ,删除linux中的数据库
(3)rpm -e --nodeps 包名 删除linux中的数据库
3、mysql的安装
a.安装客户端
yum install mysql
b.安装服务端
yum install mysql-server
4、启动mysql
service mysqld start 开启数据库(我们使用数据要保持数据库开启)
service mysqld status 查看数据库的状态
service mysqld stop 关闭数据库
service mysqld restart 重启数据库
5)mysqladmin -u root password '123456' 设置数据库密码
(6)进入数据库操作界面
mysql -u root -p 敲回车 输入密码
(7)show databases 显示所有的数据库
(8)授权
grant all privileges on . to root@'%' identified by "123456";
grant 授 all privileges 所有的权限
on * 第一个星表示所有库 * 第二型表示所有的表to root 用户 @ % 表示所有用户 identified by 设置密码
(9)刷新权限
flush privileges;
(10)create database 数据库名
(11)show databases ;查看所有的数据库
(12)use 库名
(13)退出:
ctrl+z,或ctrl+c或qiut
解决问题:
1、关闭防火墙 service iptables stop (在linux中操作)
2、 开启数据库 service mysqld start (在linux中操作)
3、授权(在mysql中操作)
grant all privileges on . to root@'%' identified by "123456"
4、授权以后要刷新
flush privileges (在mysql中操作)
5、检查连接数据库的参数的正确性如:ip地址,密码,用户名等
6、密码设置:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YSE)
(1)也是修改密码
解决办法
第一步:关闭mysql
第二步:mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
第三步: UPDATE user SET Password=PASSWORD('123456') where USER='root';
第四步: FLUSH PRIVILEGES;
(在linux中操作)