网站建设背景图,wordpress 设成中文,马鞍山广播电视台,wordpress中文模板下载地址数据库基础概念与MySQL二进制安装与初始化 使用数据库的必要性 数据库可以结构化储存大量数据信息#xff0c;方便用户进行有效的检索访问 有效的保持数据信息的一致性#xff0c;完整性#xff0c;降低数据冗余 可以满足应用的共享和安全方面的要求 数据库基本概念 数据… 数据库基础概念与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 --usermysql --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_connections2048 最大连接数量 character-set-serverutf8 默认字符集 default-storage-engineINNODB 默认储存引擎 lower_case_table_names1 启用大小写不敏感 max_allowed_packet16M 最大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] Descriptionmysqld Afternetwork.target [Service] Typeforking ExecStart/etc/rc.d/init.d/mysqld start ExecReload/etc/rc.d/init.d/mysqld reload ExecStop/etc/rc.d/init.d/mysqld stop PrivateTmptrue [Install] WantedBymulti-user.target privateTmp 启用私有临时目录避免数据信息泄露的风险 注意systemctl与service不能混用 进入数据库进行测试看是否成功