Linux入门攻坚——28、php、mysql基础

httpd+php:是在httpd中启用模块,不同的工作模式,使用的模块不同
  modules
    httpd:prefork --> libphp5.so
    httpd:event or worker --> libphp5-zts.so

php:引入zend engine后,分为两个阶段:opcode和excute
  scanning --> parsing --> compilation --> excution

PHP
php解释器:
  配置文件:/etc/php.ini,/etc/php.d/*.ini
  配置文件(php.ini)在PHP启动时被读取。对于服务器模块版本的PHP,仅在web服务器启动时读取一次,对于CGI和CLI版本,每次调用都会读取。

ini:
  [Section]
  directive = value

MariaDB(mysql)
关系型数据库的一种开源实现;RDBMS设计范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称完美范式)
RDBMS:
    MySQL:MySQL,MariaDB,Percona-server
    PostgreSQL:简称为pgsql --> EnterpriseDB
    Oracle:
    MSSQL:
事务:多个操作被当做一个整体对待
  ACID:Atomicity、Consistency、Isoaltion、Durability
    A:原子性;   C:一致性;   I:隔离性;   D:持久性

基本概念:
  约束:constraint,向数据表提供的数据要遵守的限制;
    主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行,且NOT NULL;
    唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行,允许NULL;
    外键:一个表中的某字段可填入数据取决于另一个表的主键已有的数据;
    检查性:
  索引:将表中的一个或多个字段中的数据复制一份另存,并且需要按特定次序排序存储;
  关系运算:
    选择:挑选出符合条件的部分行
    投影:挑选出需要的字段
    连接:
数据抽象:
  物理层:决定数据的存储格式,即RDBMS在磁盘上如何组织文件;
  逻辑层:描述DB存储什么数据,以及数据间存在什么样的关系;
  视图层:描述DB中的部分数据;

MariaDB:
  安装MySQL:
    源代码:编译安装
    二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用;
    程序包管理器管理的程序包:
      rpm:OS Vendor、项目官方
      deb:

MariaDB的特性:
  插件式存储引擎:存储管理器有多种实现版本,功能和特性可能略有差别:用户可根据需要灵活选择;存储引擎也称之为“表类型”;
  更多的存储引擎:MyISAM --> Aria,InnoDB --> XtraDB

安装使用MariaDB: 二进制格式的程序包安装
  CentOS 7直接提供;
  CentOS 6:
1、下载:mariadb-5.5.68-linux-x86_64.tar.gz(在下载时,看到还有mariadb-5.5.68-linux-systemd-x86_64.tar.gz,应该是对systemd的支持,即可以使用systemd进行管理),是通用二进制包。
2、创建mysql用户,以此用户运行mysql进程。

3、展开压缩包:一定放置于/car/local下

4、解压后,创建mariadb-5.5.68-linux-x86_64目录,安装要求放在mysql目录,所以创建链接:

5、进入mysql目录:

修改目录中文件及子目录的属主属组:

其中,data目录用于存储数据库数据的,一般单独存放于一个挂载的设备上,因为数据是不断增加变化的,所以存放的设备一般要能够随时扩展,因为数据重要,所以最好有快照或备份功能,这里实验将其安装在LVM上的xfs系统上。

查看本机的磁盘,sdb上还有多余的空间:fdisk  /dev/sdb -l

创建新分区:

修改分区类型:

创建物理卷、卷组、逻辑卷:

对于CentOS6,需要额外安装xfs:

创建xfs文件系统:

配置开机挂载:编辑/etc/fstab

创建/mydata目录:
mkdir /mydata

重载fstab:

创建data目录,修改属主属组:

6、创建mysql数据库:

保存数据库数据的目录是用--datadir=path参数设定,--user=user_name是指定以哪个用户运行。

.

对于mysql来说,创建的数据库其实就是data下的一个目录,目录中保存创建对应数据库的数据,一个逻辑映射关系。这里可以看到,创建了mysql目录,也就是有一个mysql数据库。

7、添加服务启动脚本,mysql已经给了:

8、准备配置文件
配置格式:类ini格式,为各程序均通过单个配置文件提供配置信息;
    [prog_name]
配置文件查找次序:
    /etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
现在按第二个组织配置文件:创建/etc/mysql/my.cnf
  安装后的MariaDB提供了几个配置文件,是按照不同的内存大小来配置的。

cp support-files/my-large.cnf /etc/mysql/my.cnf 

调整上述文件:

9、启动MariaDB:
第一次启动时:

分析其错误提示,是创建日志文件时出错,在/var/log/目录下创建mysqld.log失败,原因是/var/log目录的属主属组是root,而mysql启动是用的mysql用户,手动创建mysqld.log文件,然后chown mysql.mysql /var/log/mysqld.log,重新启动:

MariaDB的程序组成:
C:
  mysql:CLI交互式客户端程序;
  mysqldump,mysqladmin...
S:
  mysqld_safe
  mysqld
  mysqld_multi

服务器端监听的两种socket地址:
  ip socket:监听在tcp的3306端口,支持远程通信;
  unix sock:监听在sock文件上(/tmp/mysql.sock,/var/lib/mysql/mysql.sock),仅支持本地通信。
    server:localhost,127.0.0.1   (本地共享文件通信方式)

命令行交互式客户端程序:mysql
  mysql 
    -uUSERNAME:用户名,默认为root
    -hHOST:服务器主机,默认为localhost
    -pPASSWORD:密码,默认为空
    注意:mysql用户账号由两部分组成:‘USERNAME’@‘HOST’;其中HOST用于限制此用户可通过哪些主机远程连接mysql服务器。
    支持使用通配符:
      %:匹配任意长度的任意字符;
      _:匹配任意单个字符;
  命令:
    客户端命令:本地执行;
      mysql> help    获取所有客户端命令
        每个命令都有完整形式和简写格式,如status 简写 \s
    服务端命令:通过mysql协议发往服务器执行并取回结果;
        每个命令都必须有命令结束符,默认为分号;。

使用客户端工具登录数据库:

安全初始化:mysql_secure_installation,因为root默认密码全为空,不安全,使用这个脚本进行安全初始化。

关系型数据库的常用组件:
  数据库:database
  表:table
    行:row
    列:column
  索引:index
  视图:view
  用户:user
  权限:privilege
  存储过程:procedure
  存储函数:function
  触发器:trigger
  事件调度器:event scheduler

SQL语句:
  DDL:Data Defination Language
    CREATE,DROP,ALTER
  DML:Data Manipulation Language
    INSERT,DELETE,UPDATE,SELECT
    GRANT,REVOKE

数据库:
  CREATE DATABASE|SCHEMA  [IF NOT EXISTS] ‘DB_NAME’;
  DROP DATABASE|SCHEMA [IF EXISTS] ‘DB_NAME’;
  CHARACTER SET 'character set name'  使用的字符集
  COLLATE 'collate name'   使用的排序方法
  查看支持的所有字符集:show character set;
  查看支持的所有排序规则:show collations;
  查看所有的数据库:show databases;
获取命令使用帮助:
  mysql>HELP KEYWORD; 如HELP CREATE DATABASE

表:
  CREATE TABLE [IF NOT EXISTS]  tb_name (col1 datatype 修饰符,col2 datatype 修饰符,...) ENGINE=''
  查看所有的引擎:show engines;
  查看所有的表:show tables [ from db_name];
  查看表结构:desc [db_name.]tb_name;
  删除表:DROP TABLE [IF EXISTS] tb_name;

数据类型:
  字符型:
    定长字符型:CHAR(#),BINARY(#)
    变长字符型:VARCHAR(#),VARBINARY(#)
    对象存储:
      TEXT:不区分大小写
      BLOB:区分大小写
    内置类型:
      ENUM:枚举类型
      SET:集合
  数值型:
    精确数值型:
      整型 int:tinyint、smallint、mediumint、int、bigint
      十进制 decimal:decimal
    近似数值型:单精度浮点型float、双精度浮点型double
  日期时间型:
    日期:DATE
    时间:TIME
    日期时间型:DATETIME
    时间戳:TIMESTAMP
    年份:YEAR(2),YEAR(4)

修饰符:
  NOT NULL:非空约束
  DEFAULT VALUE:设定默认值
  UNSIGNED:无符号数
  AUTO_INCREMENT:自动增长
字段修饰符:
  PRIMARY KEY
  UNIQUE KEY

数据库基础应用:

获取创建表命令帮助:mysql> HELP CREATE TABLE;
查看创建命令:SHOW CREATE TABLE tbl_name;
查看表状态:SHOW TABLE STATUS LIKE ‘tbl_name’\G

删除表:
DROP TABLE [IF EXISTS] ‘tbl_name’;
修改表:
ALTER TABLE ‘tbl_name’
  字段:
    添加字段:add
    删除字段:drop
    修改字段:alter,change,modify
  索引:
    添加索引:add
    删除索引:drop
  表选项

索引:
  索引是特殊数据结构:定义在查找时作为查找条件的字段;
  索引可以有索引名称;

DML:INSERT,DELETE,SELECT,UPDATE

DCL:GRANT,REVOKE

用户账号及权限管理:
  用户账号:'user'@'host'
  host:此用户访问mysqld服务时允许通过哪些主机远程创建连接:
    IP、网络地址、主机名、通配符(%和_);

  禁止检查主机名:my.cnf中,[mysqld] skip_name_resolve = yes

创建用户账号:
  CREATE USER ‘username’@‘host’ [IDENTIFIED BY 'password'];
删除用户:
  DROP USER 'username'@'host'

授权:
  权限:管理权限、数据库、表、字段、存储例程
  GRANT priv_type,... ON [object_type]  db_name.ta_name TO 'user'@'host' [IDENTIFIED BY 'password'];
    priv_type:ALL [PRIVILEGES]
    db_name.tb_name:
      *.*:所有库的所有表;
      db_name.*:指定库的所有表;
      db_name.tb_name:指定库的指定表;
      db_name.routine_name:指定库的存储例程;

查看指定用户获得的授权:
  SHOW GRANTS FOR 'user'@'host';
  SHOW GRANTS FOR CURRENT_USER;

回收权限:
  REVOKE priv_type,... ON db_name.tb_name FROM 'user'@'host';

注意:MariaDB服务进程启动时会读取mysql库中的所有授权表至内存中;
  (1)GRANT或REVOKE等执行权限操作会保存于表中,MariaDB的服务进程会自动重读授权表;
  (2)对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表;
    mysql> FLUSH PRIVILEGES;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复现GMM文章(五):图5代码和数据

介绍 复现GMM文章的的Fig5图。 加载R包 library(tidyr) library(tidyverse) library(dplyr) library(ggsci) library(ggpubr) library(psych) library(ggcorrplot) library(showtext) library(ggrepel)导入数据 所有的数据可以通过下列链接下载: 百度网盘链接…

Unity | Shader基础知识(第十八集:Stencil应用-透视立方盒子)

目录 一、前言 二、场景布置 三、 shader部分 1.图片的部分 2.图片部分纯净代码 3.遮罩部分复习 4.深度写入 ZWrite 5.颜色遮罩ColorMask 6.遮罩纯净代码 四、场景中shader使用 五、作者的碎碎念 一、前言 因为这个内容稍微有点多,我尽力讲清楚了&#x…

mac拆分pdf mac如何拆分pdf成多个文件

在数字化办公日益普及的今天,pdf文件因其良好的兼容性和便捷性,已经成为工作和学习中的重要文件格式。然而,有时候我们可能会遇到需要将一个大的pdf文件拆分成多个小文件的情况,以便于管一理和分享。本文将为您详细介绍两种简单易…

MySQL 和 PostgreSQL,我到底选择哪个?

MySQL 和 PostgreSQL 是两个广泛使用的关系型数据库管理系统(RDBMS)。它们都具有强大的功能和广泛的社区支持,但在某些方面存在一些差异。本文将详细比较 MySQL 和 PostgreSQL,包括它们的特点、性能、扩展性、安全性以及适用场景等…

文献阅读:tidyomics 生态系统:增强组学数据分析

文献介绍 文献题目: The tidyomics ecosystem: enhancing omic data analyses 研究团队: Stefano Mangiola(澳大利亚沃尔特和伊丽莎霍尔医学研究所)、Michael I. Love(美国北卡罗来纳大学教堂山分校)、Ant…

virtualbox的ubuntu默认ipv4地址为10.0.2.15的修改以及xshell和xftp的连接

virtualbox安装Ubuntu后,默认的地址为10.0.2.15 我们查看virtualbox的设置发现是NAT 学过计算机网络的应该了解NAT技术,为了安全以及缓解ip使用,我们留了部分私有ip地址。 私有IP地址网段如下: A类:1个A类网段&…

hexo搭建博客(github node git )(失败版本)

HexoGitHub搭建个人博客教程(2023最新版) 搭建失败了 是因为git命令一直报错 打算明天把git和node版本全部重新安装后再弄 同时回顾一下github git 和 node的基础知识 Github新手之路(全过程)(站在前辈的肩膀上的总…

Template_C++

C模板 C提供了function template. function template:实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用的函数就称为函数模版。 是不是可以这样理解,函数模版就是给了一种功能&…

pytorch学习(四)绘制loss和correct曲线

这一次学习的时候静态绘制loss和correct曲线,也就是在模型训练完成后,对统计的数据进行绘制。 以minist数据训练为例子 import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvisi…

【zabbix6监控java-tomcat全流程】

目录 一、监控主机安装zabbix-server1、zabbix的安装2、配置数据库3、为zabbix server配置数据库4、启动服务,web界面安装 二、被监控主机安装tomcat1、安装JDK2、安装tomcat 三、zabbix的服务端安装zabbix-java-gateway四、被监控主机tomcat的配置五、web界面添加主机 一、监控…

使用 Web APi - MediaRecorder 获取麦克风资源,报错:Cannot find name ‘MediaRecorder‘ 的解决方法

目录 一、背景: 二、具体解决方法 一、背景: angular 调用 MediaRecorder 来使用麦克风获取声音,(具体要求:angular 前端 按键调用 麦克风,松开按键生成音频文件)代码如下(来自通…

【树莓派3B+】控制引脚输出高低电平

前言一、安装RPI.GPIO库二、编写简单的输出高低电平的程序三、运行程序总结 前言 首先检查一下自己的板子有没有带库 我这个是有的。 ok,正式进入步骤 一、安装RPI.GPIO库 如果还没有安装RPi.GPIO库,可以通过以下命令在树莓派上安装: p…

Ubuntu20.04从零开搭PX4MavrosGazebo环境并测试

仅仅是个人搭建记录 参考链接: https://zhuanlan.zhihu.com/p/686439920 仿真平台基础配置(对应PX4 1.13版) 语雀 mkdir -p ~/tzb/catkin_ws/src mkdir -p ~/tzb/catkin_ws/scripts cd catkin_ws && catkin init catkin build cd…

数据结构day2

一、思维导图 内存分配 二、课后习题 分文件编译 //sys.h #ifndef TEST_H #define TEST_H #define MAX_SIZE 100//定义学生类型 typedef struct Stu {char name[20]; //姓名int age; //年龄double score; //分数 }stu;//定义班级类型 typedef struct Class {struct …

实战:详解Spring创建bean的流程(图解+示例+源码)

概叙 这篇主要总结Spring中bean的创建过程,主要分为加载bean信息–>实例化bean–>属性填充–>初始化阶段–>后置处理等步骤,且每个步骤Spring做的事情都很多,这块源码还是很值得我们都去看一看的。而Spring中Bean的声明周期其实…

GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南

0. 综合的教学视频介绍 GEO数据库挖掘分析作图全流程每晚11点在线教学直播录屏回放视频: https://www.bilibili.com/video/BV1rm42157CT/ GEO数据从下载到各种挖掘分析全流程详解: https://www.bilibili.com/video/BV1nm42157ii/ 一篇今年近期发表的转…

捷配总结的SMT工厂安全防静电规则

SMT工厂须熟记的安全防静电规则! 安全对于我们非常重要,特别是我们这种SMT加工厂,通常我们所讲的安全是指人身安全。 但这里我们须树立一个较为全面的安全常识就是在强调人身安全的同时亦必须注意设备、产品的安全。 电气: 怎样预…

IDEA 调试 Ja-Netfilter

首先本地需要有两款IDEA 可以是相同版本,也可以是不同版本。反正要有两个,一个用来调试代码,一个启动。 移除原有ja-netfiler 打开你的ja-netfiler的vmoptions目录,修改其中的idea.vmoptions文件。移除最后一行-javaagent ...参…

分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法

前言 树形结构是一种很常见的数据结构,类似于现实生活中的树的结构,具有根节点、父子关系和层级结构。 所谓根节点,就是整个树的起始节点。 节点则是树中的元素,每个节点可以有零个或多个子节点,节点按照层级排列&a…

AI智能名片S2B2C商城小程序在社群去中心化管理中的应用与价值深度探索

摘要:随着互联网技术的飞速发展,社群经济作为一种新兴的商业模式,正逐渐成为企业与用户之间建立深度连接、促进商业增长的重要途径。本文深入探讨了AI智能名片S2B2C商城小程序在社群去中心化管理中的应用,通过详细分析社群去中心化…