-  数据库基础概念与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不能混用 
 
-  
 
-  
-  进入数据库进行测试看是否成功 
 
-  
 
-  
 
-  

