网站建设投标ppt,安装php网站,网站各类模块内容说明,网站建设的swot分析目录 1、按照课程演示完成tomcat部署安装和配置虚拟主机实现java程序的访问
1.1ubantu主机部署java环境
1.2定制环境变量
1.3加载环境变量
1.4获取软件
1.5解压软件
1.6定制软连接
1.7定制系统环境变量
1.8启动tomcat
1.9定制服务脚本
1.9.1创建用户
1.9.2赋予权限 …目录 1、按照课程演示完成tomcat部署安装和配置虚拟主机实现java程序的访问
1.1ubantu主机部署java环境
1.2定制环境变量
1.3加载环境变量
1.4获取软件
1.5解压软件
1.6定制软连接
1.7定制系统环境变量
1.8启动tomcat
1.9定制服务脚本
1.9.1创建用户
1.9.2赋予权限
1.9.3编写脚本
1.9.4加载服务配置
1.9.5启动
2、JVM原理总结GC内存分配等
2.1JVM原理
2.2GC
2.3内存分配
3、 总结关系型数据库相关概念关系行列主键唯一键。
3.1关系型数据库
3.2行
3.3列
3.4主键
3.5唯一键
4、总结关联类型1对11对多多对多关系。可以自行设计表进行解释。
4.1一对一关系
4.2一对多关系
4.3多对多关系
5、基于课程演示总结Mysql安装方式并总结mysql配置文件。
5.1Mysql安装方式
5.1.1包管理方式安装
5.1.2二进制源码安装
5.2mysql配置文件
6、掌握如何获取SQL命令的帮助基于课程演示完成数据库和表的创建等
6.1获取SQL命令的帮助
6.2完成数据库和表的创建
7、完成总结DDL, DML的用法并配上示例。
7.1DDL语法
7.1.1创建
7.1.2修改
7.1.3删除
7.2DML语法
7.2.1插入
7.2.2查询
7.2.3更新
7.2.4删除
8、总结mysql架构原理和总结myisam和Innodb存储引擎的区别。
8.1mysql架构原理
8.1.1连接层
8.1.2服务层
8.1.3存储引擎层
8.1.4系统层
8.2myisam和innodb的区别
9、总结事务ACID事务特性总结事务日志工作原理。
9.1事物ACID特性
9.1.1原子性
9.1.2一致性
9.1.3隔离性
9.1.4持久性
9.2事物日志工作原理
9.2.1redo log
9.2.2undo log
9.2.3协同工作
10、总结mysql日志类型并说明如何启动日志。
10.1mysql日志类型
10.1.1错误日志
10.1.2通用日志
10.1.3慢查询日志
10.1.4二进制日志
11、总结二进制日志的不同格式的使用场景。
11.1statment
11.2row
12、基于课程演示完成mysql备份完成数据库备份与恢复验证。
12.1MySQL备份
13、根据课程演示完成mysql 主从和读写分离的实验过程
13.1主节点配置
13.1.1安装软件
13.1.2准备目录并修改权限
13.1.3修改配置文件
13.1.4创建账号并授权
13.2从节点配置
13.2.1安装软件
13.2.2准备目录并修改权限
13.2.3修改配置文件
13.2.4配置主从
13.2.5启动同步
13.3测试同步效果
13.3.1主节点写入数据
13.3.2从节点验证 1、按照课程演示完成tomcat部署安装和配置虚拟主机实现java程序的访问
1.1ubantu主机部署java环境
apt install openjdk-11-jdk -y
1.2定制环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_BIN$JAVA_HOME/bin
export PATH$JAVA_BIN:$PATH
1.3加载环境变量
source /etc/profile.d/java.sh
1.4获取软件
mkdir /data/softs -p; cd /data/softs
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz
链接已失效需要自行下载安装包后上传就算找到可用连接下载速度也是非常慢
1.5解压软件
mkdir /data/server
1.6定制软连接
ln -s /data/server/apache-tomcat-9.0.97 /data/server/tomcat
1.7定制系统环境变量
vim /etc/profile.d/tomcat.sh
export CATALINA_BASE/data/server/tomcat
export CATALINA_HOME/data/server/tomcat
export CATALINA_TMPDIR$CATALINA_HOME/temp
export CLASSPATH$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar
export PATH$CATALINA_HOME/bin:$PATH
加载变量
source /etc/profile.d/tomcat.sh
1.8启动tomcat
catalina.sh start关闭tomcat
catalina.sh stop
1.9定制服务脚本
1.9.1创建用户
useradd -r -s /sbin/nologin tomcat
1.9.2赋予权限
chown -R tomcat:tomcat /data/server/tomcat
chown tomcat:tomcat -R /data/server/tomcat/*
1.9.3编写脚本
vim /lib/systemd/system/tomcat.service
[Unit]
DescriptionTomcat
Aftersyslog.target network.target[Service]
Typeforking
# EnvironmentJAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64/
ExecStart/data/server/tomcat/bin/startup.sh
ExecStop/data/server/tomcat/bin/shutdown.sh
PrivateTmptrue
Usertomcat
Grouptomcat[Install]
WantedBymulti-user.target
1.9.4加载服务配置
systemctl daemon-reload
1.9.5启动
systemctl start tomcat2、JVM原理总结GC内存分配等
2.1JVM原理
JVM全称Java Virtual Machine即Java虚拟机。它是一个运行在计算机上的程序主要职责是运行Java字节码文件。
JVM是一种规范本身是一个虚拟计算机直接和操作系统进行交互不直接与硬件交互。操作系统可以帮助JVM完成与硬件的交互工作。
Java借助JVM实现了平台无关性即“write OnceRun Anywhere编写一次到处运行”的跨平台特性。
2.2GC
在堆内存中如果创建的对象不再使用仍占用着内存此时即为垃圾需要进行垃圾回收从而释放内存空间给其它对象使用。
这个时候JVM将调用垃圾回收机制来回收内存空间。 堆内存里面经常创建、销毁对象内存也是被使用、被释放。
如果不妥善处理一个使用频繁的进程可能会出现虽然有足够的内存容量但是无法分配出可用内存空间因为没有连续成片的内存了内存全是碎片化的空间。 所以需要有合适的垃圾回收机制确保正常释放不再使用的内存空间还需要保证内存空间尽可能的保持一定的连续。
2.3内存分配
优先在 Eden 区分配大多数对象优先在新生代 Eden 区分配当 Eden 区满时触发 Minor GC
大对象直接进入老年代超过 -XX:PretenureSizeThreshold 阈值的对象直接分配到老年代
长期存活对象进入老年代对象经历一定次数默认 15 次GC 后仍存活晋升到老年代
动态年龄判断Survivor 区中相同年龄对象的总大小超过 Survivor 空间的 50%年龄≥该值的对象直接进入老年代
空间分配担保Minor GC 前老年代会先检查是否有足够空间容纳新生代存活对象否则提前触发 Major GC
3、 总结关系型数据库相关概念关系行列主键唯一键。
3.1关系型数据库
关系型数据库是基于关系模型构建的数据库通过二维表结构组织和存储数据以行和列的形式体现数据间的关联关系典型代表包括 MySQL、Oracle、SQL Server 等。其核心设计思想是将现实世界中的实体及实体间关系抽象为表结构通过结构化查询语言SQL进行数据操作。
3.2行
又称记录Record是表中的一条完整数据条目代表一个具体的实体实例。
3.3列
又称字段Field是表中的一个数据维度代表实体的某一属性。
3.4主键
用于唯一标识表中每一行的一个或多个列的组合是表的核心约束。
3.5唯一键
确保表中某一列或列组合的值具有唯一性的约束但允许存在一个 NULL 值部分数据库支持。
4、总结关联类型1对11对多多对多关系。可以自行设计表进行解释。
4.1一对一关系
表 A 中的一条记录仅对应表 B 中的一条记录
-- 用户表user
CREATE TABLE user (user_id INT PRIMARY KEY, -- 主键username VARCHAR(50) NOT NULL,password VARCHAR(100) NOT NULL
);-- 用户详情表user_detail
CREATE TABLE user_detail (detail_id INT PRIMARY KEY,user_id INT UNIQUE, -- 唯一外键关联用户表real_name VARCHAR(50),address VARCHAR(200),phone VARCHAR(20),FOREIGN KEY (user_id) REFERENCES user(user_id)
);
4.2一对多关系
表 A 中的一条记录可对应表 B 中的多条记录而表 B 中的一条记录仅对应表 A 中的一条记录
-- 部门表department
CREATE TABLE department (dept_id INT PRIMARY KEY,dept_name VARCHAR(50) NOT NULL,location VARCHAR(100)
);-- 员工表employee
CREATE TABLE employee (emp_id INT PRIMARY KEY,emp_name VARCHAR(50) NOT NULL,salary DECIMAL(10, 2),dept_id INT, -- 外键关联部门表FOREIGN KEY (dept_id) REFERENCES department(dept_id)
);
4.3多对多关系
表 A 中的一条记录可对应表 B 中的多条记录反之表 B 中的一条记录也可对应表 A 中的多条记录
-- 学生表student
CREATE TABLE student (student_id INT PRIMARY KEY,student_name VARCHAR(50) NOT NULL,grade INT
);-- 课程表course
CREATE TABLE course (course_id INT PRIMARY KEY,course_name VARCHAR(50) NOT NULL,teacher VARCHAR(50)
);-- 学生选课中间表student_course
CREATE TABLE student_course (student_id INT,course_id INT,score DECIMAL(5, 2), -- 可选记录选课成绩PRIMARY KEY (student_id, course_id), -- 联合主键FOREIGN KEY (student_id) REFERENCES student(student_id),FOREIGN KEY (course_id) REFERENCES course(course_id)
);
5、基于课程演示总结Mysql安装方式并总结mysql配置文件。
5.1Mysql安装方式
5.1.1包管理方式安装
配置好仓库源用包管理器进行安装
apt install mysql-server -y
5.1.2二进制源码安装
下载适合系统的二进制安装文件创建 mysql 组和用户解压文件并设置权限执行mysql/bin/mysqld --initialize初始化指定配置文件路径等将相关文件添加为系统服务并设置开机自启动。
5.2mysql配置文件
vim /etc/my.cnf.d/mysql-clients.cn
[mysql]
# 设置mysql命令行客户端的全局选项
[mysql_upgrade]
# 用于mysql_upgrade工具的配置。mysql_upgrade用于检查并升级MySQL表的格式。
[mysqladmin]
# 为mysqladmin工具配置选项。mysqladmin用于执行管理任务如检查服务器状态、创建和删除数据库
等。
[mysqlbinlog]
# 配置mysqlbinlog工具它用于处理二进制日志文件这些文件记录了数据库的所有更改。
[mysqlcheck]
# 为mysqlcheck工具设置选项该工具用于检查、修复、优化和分析表。
[mysqldump]
# 配置mysqldump工具它用于生成数据库的备份。
[mysqlimport]
# 为mysqlimport工具设置选项该工具用于从文本文件导入数据到表中。
[mysqlshow]
# 配置mysqlshow工具它用于显示数据库、表、列或索引的信息。
[mysqlslap]
# 为mysqlslap工具配置选项该工具用于模拟和测试MySQL服务器的负载。
6、掌握如何获取SQL命令的帮助基于课程演示完成数据库和表的创建等
6.1获取SQL命令的帮助
使用help命令
6.2完成数据库和表的创建
create database db1;
CREATE TABLE IF NOT EXISTS user (user_id INT AUTO_INCREMENT PRIMARY KEY, -- 自增主键唯一标识用户username VARCHAR(50) NOT NULL UNIQUE, -- 用户名非空且唯一password VARCHAR(100) NOT NULL, -- 密码非空email VARCHAR(100) UNIQUE, -- 邮箱唯一允许NULLphone VARCHAR(20), -- 手机号create_time DATETIME DEFAULT CURRENT_TIMESTAMP, -- 创建时间默认当前时间last_login_time DATETIME, -- 最后登录时间status TINYINT DEFAULT 1 COMMENT 1启用,0禁用 -- 状态字段注释
) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 存储引擎字符集
7、完成总结DDL, DML的用法并配上示例。
7.1DDL语法
7.1.1创建
-- 1.1 创建数据库
CREATE DATABASE IF NOT EXISTS mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;-- 1.2 创建表含完整约束
CREATE TABLE IF NOT EXISTS user (user_id INT AUTO_INCREMENT PRIMARY KEY, -- 自增主键username VARCHAR(50) NOT NULL UNIQUE, -- 非空唯一password VARCHAR(100) NOT NULL, -- 非空email VARCHAR(100) UNIQUE, -- 邮箱唯一age TINYINT CHECK (age 0 AND age 150), -- 检查约束create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 默认当前时间
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;-- 1.3 创建索引
CREATE INDEX idx_username ON user(username); -- 普通索引
CREATE UNIQUE INDEX uk_email ON user(email); -- 唯一索引
CREATE FULLTEXT INDEX ft_desc ON product(desc); -- 全文索引MyISAM引擎-- 1.4 创建视图虚拟表基于查询结果
CREATE VIEW v_active_users AS
SELECT user_id, username, age FROM user WHERE status 1;
7.1.2修改
-- 2.1 添加字段
ALTER TABLE user ADD COLUMN phone VARCHAR(20);
ALTER TABLE user ADD COLUMN address VARCHAR(200) AFTER username; -- 指定位置-- 2.2 修改字段
ALTER TABLE user MODIFY COLUMN phone VARCHAR(25) NOT NULL; -- 修改类型和约束
ALTER TABLE user CHANGE COLUMN address user_addr VARCHAR(255); -- 修改字段名和类型-- 2.3 删除字段
ALTER TABLE user DROP COLUMN phone;-- 2.4 添加约束
ALTER TABLE user ADD PRIMARY KEY (user_id); -- 主键已存在则忽略
ALTER TABLE user ADD UNIQUE (phone); -- 唯一键
ALTER TABLE user ADD FOREIGN KEY (dept_id) REFERENCES dept(dept_id); -- 外键-- 2.5 修改表属性
ALTER TABLE user ENGINEInnoDB; -- 更改存储引擎
ALTER TABLE user CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 修改字符集
7.1.3删除
-- 3.1 删除表
DROP TABLE IF EXISTS user; -- 删除表及数据
DROP TABLE IF EXISTS user, order_info; -- 批量删除-- 3.2 清空表数据保留表结构
TRUNCATE TABLE user; -- 速度比DELETE快不可回滚
7.2DML语法
7.2.1插入
-- 1.1 插入完整记录
INSERT INTO user (username, password, email, age)
VALUES (张三, 123456, zhangsanexample.com, 25);-- 1.2 批量插入
INSERT INTO user (username, password, email)
VALUES
(李四, abcdef, lisiexample.com),
(王五, qwerty, wangwuexample.com);-- 1.3 从查询结果插入
INSERT INTO user (username, email, age)
SELECT username, email, age FROM old_user WHERE age 18;-- 1.4 插入或更新ON DUPLICATE KEY UPDATE
INSERT INTO user (user_id, username, email)
VALUES (1001, 赵六, zhaoliuexample.com)
ON DUPLICATE KEY UPDATE email zhaoliunew.com; -- 若user_id1001存在则更新email
7.2.2查询
-- 2.1 基础查询
SELECT user_id, username, age FROM user WHERE age 30;-- 2.2 多表关联查询内连接、左连接
SELECT u.username, o.order_id, o.amount
FROM user u
JOIN order_info o ON u.user_id o.user_id -- 内连接
LEFT JOIN order_product op ON o.order_id op.order_id; -- 左连接-- 2.3 分组与聚合
SELECT dept_id, COUNT(*) AS user_count, AVG(age) AS avg_age
FROM user
GROUP BY dept_id
HAVING user_count 10 AND avg_age 40;-- 2.4 子查询
SELECT username, age FROM user
WHERE age (SELECT AVG(age) FROM user); -- 查询年龄大于平均年龄的用户
7.2.3更新
-- 3.1 单表更新
UPDATE user SET age age 1 WHERE username LIKE 张%; -- 所有张姓用户年龄1
UPDATE user SET email defaultexample.com WHERE email IS NULL; -- 补全空邮箱-- 3.2 多表关联更新
UPDATE user u
JOIN order_info o ON u.user_id o.user_id
SET u.is_vip 1 WHERE o.total_amount 10000; -- 消费超1万的用户设为VIP
7.2.4删除
-- 4.1 单表删除
DELETE FROM user WHERE age 18; -- 删除未成年人记录
DELETE FROM user LIMIT 100; -- 最多删除100条防误删-- 4.2 多表关联删除
DELETE u FROM user u
JOIN order_info o ON u.user_id o.user_id
WHERE o.create_time 2023-01-01; -- 删除2023年前无订单的用户
8、总结mysql架构原理和总结myisam和Innodb存储引擎的区别。
8.1mysql架构原理
mysql采用插件式架构核心功能分为四组
8.1.1连接层
负责处理客户端连接请求支持 TCP/IP、Unix Socket 等连接方式 包含连接池管理、权限验证基于 user 表的用户认证 处理客户端协议解析如 MySQL Protocol
8.1.2服务层
查询解析器将 SQL 语句解析为抽象语法树AST 查询优化器分析执行计划选择最优索引和表连接方式 查询缓存缓存 SELECT 结果5.7 版本后默认禁用8.0 版本移除 内置函数实现数学、字符串、日期等函数逻辑 事务管理处理 ACID 事务由存储引擎实现具体逻辑
8.1.3存储引擎层
插件式架构核心不同引擎实现独立的数据存储逻辑 标准接口read_row、write_row、delete_row等 常见引擎InnoDB默认、MyISAM、Memory、Archive 等
8.1.4系统层
操作系统交互文件 IO、内存分配 磁盘存储管理数据文件、日志文件的物理读写 进程 / 线程管理处理多连接并发请求 8.2myisam和innodb的区别 9、总结事务ACID事务特性总结事务日志工作原理。
9.1事物ACID特性
9.1.1原子性
事务作为最小执行单元要么全部完成要么全部回滚不存在中间状态
9.1.2一致性
事务执行前后数据库从一个合法状态转换到另一个合法状态
9.1.3隔离性
多个事务并发执行时相互之间不可见避免数据不一致
9.1.4持久性
事务提交后数据变更永久保存即使发生系统崩溃也不丢失
9.2事物日志工作原理
9.2.1redo log
保证事务的持久性记录数据修改后的新状态
9.2.2undo log
实现事务原子性
9.2.3协同工作
Redo Log 通过预写机制确保数据不丢失Undo Log 通过版本控制和回滚机制保障事务原子性与隔离性。两者配合 InnoDB 的 WAL 机制和检查点策略在保证事务可靠性的同时最大化提升数据库性能。
10、总结mysql日志类型并说明如何启动日志。
10.1mysql日志类型
10.1.1错误日志
主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。
错误日志功能默认开启且无法禁止。默认情况下错误日志存储在 MySQL 数据库的数据文件夹下名称默认为mysqld.logLinux 系统或hostname.errmac 系统。如果需要指定文件名可在my.cnf或my.ini中配置log - error(path/(filename))修改配置后需重启 MySQL 服务。
10.1.2通用日志
记录所有到达 MySQL 服务器的 SQL 语句
编辑my.cnf或my.ini配置文件在[mysqld]部分添加general_log 1开启通用日志添加general_log_file /path/to/your/log/file.log指定日志文件的路径然后重启 MySQL 服务。
10.1.3慢查询日志
用于记录执行时间超过特定阈值的 SQL 语句有助于优化数据库性能。
编辑配置文件在[mysqld]部分添加slow_query_log 1slow_query_log_file /path/to/your/slow/log/file.log指定慢查询日志文件路径long_query_time nn为慢查询的时间阈值单位为秒最后重启 MySQL 服务。
10.1.4二进制日志
记录所有修改数据库数据的 DML 和 DDLselect 语句除外语句以二进制形式保存描述数据的更改用于数据恢复和主从复制等。
编辑配置文件在[mysqld]部分添加log - bin /path/to/your/binlog/file重启 MySQL 服务。
11、总结二进制日志的不同格式的使用场景。
11.1statment
特点直接记录原始 SQL 语句
使用场景
1、简单查询与静态数据操作
当 SQL 语句完全确定如UPDATE users SET status1 WHERE id123且无触发器、函数依赖时可显著降低日志存储成本。
2、开发测试环境
对数据一致性要求较低的场景如开发调试、临时报表生成可通过SET sql_log_bin0临时禁用日志或直接使用 STATEMENT 格式减少日志量。
11.2row
特点记录每行数据的具体变化
使用场景
1、金融级强一致性需求
在支付系统、账户管理等场景中必须确保主从数据完全同步。
2、高并发写入与大表操作
当表包含百万级数据且频繁更新时ROW 格式能精准记录变更避免因 STATEMENT 格式的全表扫描导致的复制延迟。
12、基于课程演示完成mysql备份完成数据库备份与恢复验证。
12.1MySQL备份
mariadb冷备操作流程-CSDN博客https://blog.csdn.net/m0_57215217/article/details/148540307?spm1001.2014.3001.5501
13、根据课程演示完成mysql 主从和读写分离的实验过程
13.1主节点配置
13.1.1安装软件
yum install mysql-server -y
13.1.2准备目录并修改权限
mkdir -pv /data/mysql/logbinchown -R mysql:mysql /data/mysql/13.1.3修改配置文件
vim /etc/my.cnf.d/mysql-server.cnf添加如下内容
server-id177 #指定server-id
log_bin/data/mysql/logbin/mysql-bin #指定二进制文件路径
default_authentication_pluginmysql_native_password # 避免出现认证问题
重启服务
systemctl restart mysqld.service13.1.4创建账号并授权
create user repluser10.0.0.% identified by 123456;
grant replication slave on *.* to repluser10.0.0.%;
flush privileges;13.2从节点配置
13.2.1安装软件
yum install mysql-server -y13.2.2准备目录并修改权限
mkdir -pv /data/mysql/logbinchown -R mysql:mysql /data/mysql/13.2.3修改配置文件
vim /etc/my.cnf.d/mysql-server.cnfserver-id183 #指定server-id
log_bin/data/mysql/logbin/mysql-bin #指定二进制文件路径
default_authentication_pluginmysql_native_password # 避免出现认证问题
重启服务
systemctl restart mysqld.service13.2.4配置主从
CHANGE MASTER TO MASTER_HOST10.0.0.12, MASTER_USERrepluser,
MASTER_PASSWORD123456, MASTER_PORT3306,MASTER_LOG_FILEmysql-bin.000002,
MASTER_LOG_POS849;
13.2.5启动同步
start slave;
13.3测试同步效果
13.3.1主节点写入数据
创建数据库
create database db1;
use db1;
创建数据表
create table student(id int unsigned NOT NULL AUTO_INCREMENT,name varchar(20) NOT NULL,age tinyint unsigned DEFAULT NULL,gender enum(M,F) DEFAULT M,PRIMARY KEY (id))ENGINEInnoDB;写入数据
insert into student (name,age,gender)values(user1,10,M),(user2,20,F),(user3,30,M);13.3.2从节点验证
可以看到此时从节点已经有数据