This commit is contained in:
YUN-PC5\user 2023-11-28 16:49:50 +08:00
parent de86bc7c15
commit 6b6ea4321c
3 changed files with 150 additions and 2 deletions

View File

@ -1930,3 +1930,31 @@ public class AggregatorService : Aggregator.AggregatorBase
} }
``` ```
# Swagger
## CustomSchemaIds
CustomSchemaIds方法用于自定义SchemaIdSwashbuckle中的每个Schema都有唯一的Id框架会使用这个Id匹配引用类型因此这个Id不能重复。
  默认情况下这个Id是根据类名得到的不包含命名空间因此当我们有两个相同名称的类时Swashbuckle就会报错  
```
System.InvalidOperationException: Can't use schemaId "$XXXXX" for type "$XXXX.XXXX". The same schemaId is already used for type "$XXXX.XXXX.XXXX"
```
  就是类似上面的异常一般时候我们都得去改类名有点不爽这时就可以使用这个方法自己自定义实现SchemaId的获取比如我们自定义实现使用类名的全限定名包含命名空间来生成SchemaId上面的异常就没有了   
```c#
options.CustomSchemaIds(CustomSchemaIdSelector);
string CustomSchemaIdSelector(Type modelType)
{
if (!modelType.IsConstructedGenericType) return modelType.FullName.Replace("[]", "Array");
var prefix = modelType.GetGenericArguments()
.Select(genericArg => CustomSchemaIdSelector(genericArg))
.Aggregate((previous, current) => previous + current);
return prefix + modelType.FullName.Split('`').First();
}
```

View File

@ -474,7 +474,7 @@ flush privileges;
--- ---
### AlmaLinux 安装 ### AlmaLinux 安装 (dnf包管理器方式)
1. 首先确保系统是最新的。 1. 首先确保系统是最新的。
@ -551,7 +551,93 @@ flush privileges;
EXIT EXIT
``` ```
### AlmaLinux 安装 (rpm手动方式)
```shell
mkdir mysql_install
cd mysql_install
# 下载安装包
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.41-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.41-1.el7.x86_64.rpm
# 如果出现以下错误
错误:依赖检测失败:
libncurses.so.5()(64bit) 被 mysql-community-client-5.7.41-1.el7.x86_64 需要
libtinfo.so.5()(64bit) 被 mysql-community-client-5.7.41-1.el7.x86_64 需要
dnf install libncurses* -y
# 再次执行 rpm -ivh mysql-community-client-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.41-1.el7.x86_64.rpm
# 如果出现以下提示
/usr/lib/tmpfiles.d/mysql.conf:23: Line references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly.
vim /usr/lib/tmpfiles.d/mysql.conf
# 将/var/run/mysqld 改为 /run/mysqld
# 再次执行 rpm -ivh mysql-community-server-5.7.41-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-5.7.41-1.el7.x86_64.rpm
```
**编辑配置文件**
```shell
vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
port = 3306
user = mysql
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections = 400
character-set-server = utf8mb4
explicit_defaults_for_timestamp = true
lower_case_table_names = 1
```
**初始化**
```shell
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql
# 给mysql用户添加数据目录权限
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld
systemctl enable mysqld
# 查看root随机生成密码
grep 'temporary password' /var/log/mysqld.log
# 若没有提示,则没有密码,可直接登录
mysql -uroot
```
## 配置Java环境变量 ## 配置Java环境变量

View File

@ -45,6 +45,40 @@ mysqldump -uroot -p test --no-data > test.sql
mysqldump -uroot -p -B test > test.sql mysqldump -uroot -p -B test > test.sql
``` ```
# Xtrabackup备份数据库
## 安装
### wget方式
1. 安装qpress rpm包。
```shell
wget https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el9.x86_64.rpm
rpm -ivh qpress-11-1.el9.x86_64.rpm
```
2. 安装Percona XtraBackup
- MySQL 5.6、5.7以下载并安装Percona XtraBackup 2.4.9为例
```shell
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el9.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm --nodeps --force
```
- MySQL 8.0以下载并安装Percona XtraBackup 8.0为例
```shell
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm --nodeps --force
```
## 恢复
# Windows 下安装 绿色版 # Windows 下安装 绿色版
先下载[MySQL :: Download MySQL Community Server](https://dev.mysql.com/downloads/mysql/) 先下载[MySQL :: Download MySQL Community Server](https://dev.mysql.com/downloads/mysql/)