网站建设三网合一指的是什么天津哪里能做网站
-  
数据库基础概念与MySQL二进制安装与初始化
-  
使用数据库的必要性
-  
数据库可以结构化储存大量数据信息,方便用户进行有效的检索访问
 -  
有效的保持数据信息的一致性,完整性,降低数据冗余
 -  
可以满足应用的共享和安全方面的要求
 
 -  
 -  
数据库基本概念
-  
数据
-  
描述事物符号的记录称为数据,
-  
在数据库中以“记录“的形式按照统一的格式进行存储。
-  
一条记录
 
 -  
 
 -  
 
 -  
 -  
表
-  
存放数据的东西
-  
每张表存放的数据都必须是相同属性
-  
猪和石头不能在同一张表中
 
 -  
 
 -  
 
 -  
 -  
数据库
-  
表是数据的集合,数据库是多张表的集合
 
 -  
 -  
数据库管理系统(DBMS)
-  
从软件的层面来说
-  
例如mysql ,Oracle都是数据库管理系统
-  
具备的功能
-  
数据库的建立与维护功能
-  
建立数据库结构和数据的录入与转换,数据库的转储与恢复,数据库的重组与性能监视等。
 
 -  
 -  
数据定义功能
-  
定义全局数据结构,局部逻辑数据结构,储存结构,保密模式,信息格式等。确保数据正确,有效与相容。
 
 -  
 -  
数据操纵功能
-  
数据查询统计
 -  
数据更新
 
 -  
 -  
数据库的运行管理功能
-  
并发控制
 -  
存取控制
 -  
数据库内部维护等功能
 
 -  
 -  
通信功能
-  
与其他的软件的通信
 
 -  
 
 -  
 
 -  
 
 -  
 
 -  
 -  
数据库系统
-  
一个人-机系统,由各种各样的组件构成,数据库管理系统也只是其中一项·。
 
 -  
 -  
E-R图(实体-关系图)
-  

-  
方框:实体
 -  
菱形:关系
 -  
椭圆:实体属性
 
 -  
 
 -  
 -  
为了确保数据库的准确性,所以由”完整性约束“
-  
实体完整性
-  
要求记录在主键上不能有空值
 -  
主键:不重复性决定了唯一性
-  
在一个实体中主键只能有一个
 
 -  
 -  
外键:其它实体中的主键
-  
实体可以通过主键,外键来建立联系
 
 -  
 
 -  
 -  
域完整性(列完整性)
-  
指定一个数据集对某一个列是否有效或者确定是否允许空值。
-  
例如定义性别字段只能取值为男或者女,不能是其他无效值。
-  
确保列(属性)录入的数据的正确性。
 
 -  
 
 -  
 
 -  
 -  
引用完整性
-  
要求调用其它实体时,必须确保引用的实体的正确性。
-  
如果两个表之间相互关联,那么不允许引用不存在的记录
 
 -  
 
 -  
 -  
用户自定义完整性
-  
类似于身份证,自己去规定各种属性(如数据类型,长度等。)
 -  
 
 -  
 
 -  
 -  
存储引擎
-  
数据库的核心
 
 -  
 
 -  
 -  
数据库发展历史
-  
1960年往后初具雏形,
-  
第一代,以层次模型和网状模型为主
 -  
第二代,以关系模型为主
 -  
第三代,以面向对象的模型为主,关系-对象模型。
 
 -  
 -  
非关系数据库(nosql)
-  
例如储存日志信息
-  
”键-值“对
 
 -  
 -  
代表产品
-  
redis
 -  
mongodb
 
 -  
 -  
基于内存
-  
读写速度快,断电没,适合高速处理各种大量数据
 -  
通过内存数据持久化,快照机制,追加机制,集群,来解决断电没的缺点。
 
 -  
 -  
优点
-  
高并发读写
 -  
高存储效率
 -  
高扩展
 -  
高可用
 
 -  
 
 -  
 -  
关系数据库
-  
基于硬盘,设置缓冲区,异步储存数据
 -  
读写速度
-  
寄存器,缓存级,内存,固态,硬盘
 
 -  
 -  
基本结构
-  
通常以二维表的形式储存数据
 -  
数据表中的行被称为记录或者元组
 -  
数据表中的列被称为属性或者字段
 -  
主键
-  
数据表中具有唯一性的列的值
-  
有且只有一个
 
 -  
 -  
primary key
 -  
键:关键字
 
 -  
 -  
外键
-  
其他表的主键
 
 -  
 
 -  
 
 -  
 
 -  
 -  
mysql部署调试
-  
MySQL优点
-  
开源免费,跨平台
 -  
多线程,多用户
 -  
高性能,高可靠
 -  
基于c/s架构
 
 -  
 -  
部署
-  
安装前奏
-  
检测是否安装Mariadb如果有将其卸载
 -  
添加策略或关闭防火墙,临时并永久关闭内核安全机制。
 -  
安装依赖环境
-  
gcc
-  
GNU C语言 编译器
 
 -  
 -  
libaio
-  
(async)异步 (i/o)输入输出(lib)库
 
 -  
 
 -  
 -  
创建程序用户
-  
useradd -M -s /sbin/nologin mysql
 
 -  
 
 -  
 -  
安装
-  
解压并移动重命名到常用位置/usr/local/mysql
 -  
创建data目录并更改属主属组
 -  
移动到bin目录下执行mysqld脚本进行初始化
-  
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
-  
再次初始化需要删除data目录。需谨慎
 -  
记录下初始化后的临时密码
 
 -  
 
 -  
 
 -  
 -  
调试
-  
设定配置文件
-  
[client]
-  
socket=/usr/local/mysql/data/mysql.sock
 -  
 
 -  
 -  
[mysqld]
-  
socket=/usr/local/mysql/data/mysql.sock
 -  
bind-address = 0.0.0.0
-  
监听所有网卡的IP地址,并且需要防火墙也允许
 
 -  
 -  
port = 3306
-  
监听端口
 
 -  
 -  
skip-name-resolve
-  
跳过域名解析
 
 -  
 -  
basedir=/usr/local/mysql
-  
基础目录
 
 -  
 -  
datadir=/usr/local/mysql/data
-  
数据目录
 
 -  
 -  
max_connections=2048
-  
最大连接数量
 
 -  
 -  
character-set-server=utf8
-  
默认字符集
 
 -  
 -  
default-storage-engine=INNODB
-  
默认储存引擎
 
 -  
 -  
lower_case_table_names=1
-  
启用大小写不敏感
 
 -  
 -  
max_allowed_packet=16M
-  
最大sql数据的大小
 
 -  
 -  
忘记密码的办法
-  
skip-grant-tables
-  
跳过权限表使用空密码登录
-  
进入MySQL系统修改完毕后再把该语句取消
 
 -  
 
 -  
 
 -  
 
 -  
 -  
[mysqld_safe]
-  
log-error=/usr/local/mysql/data/error.log
-  
状态日志的位置,在初始化时可以将其调到mysqld中,避免忘记临时密码,事后要及时修改密码。
 
 -  
 -  
#pid-file=/var/run/mariadb/mariadb.pid
 
 -  
 
 -  
 -  
设置为全局命令
-  
软链接等多种方式
 
 -  
 -  
设置为systemd的管理
-  
[Unit] Description=mysqld After=network.target [Service] Type=forking ExecStart=/etc/rc.d/init.d/mysqld start ExecReload=/etc/rc.d/init.d/mysqld reload ExecStop=/etc/rc.d/init.d/mysqld stop PrivateTmp=true [Install] WantedBy=multi-user.target
-  
privateTmp
-  
启用私有临时目录,避免数据信息泄露的风险
 
 -  
 
 -  
 -  
注意systemctl与service不能混用
 
 -  
 
 -  
 -  
进入数据库进行测试看是否成功
 
 -  
 
 -  
 
 -  
 


