OpenWrt 22.03 升级 23.05
主机名 | OpenWrt |
---|---|
型号 | Raspberry Pi 3 Model B V1.2 |
架构 | ARMv8 Processor rev 4 |
平台 | bcm27xx/bcm2710 |
目标OS | OpenWrt 23.05 |
OpenWrt 22.03
–> OpenWrt 23.05
主机名 | OpenWrt |
---|---|
型号 | Raspberry Pi 3 Model B V1.2 |
架构 | ARMv8 Processor rev 4 |
平台 | bcm27xx/bcm2710 |
目标OS | OpenWrt 23.05 |
OpenWrt 22.03
–> OpenWrt 23.05
获取初始密码登录grep "temporary password" /usr/local/mysql/mysql-err.log
修改初始密码
mysql> |
修改配置文件: /etc/my.cnf
[mysql]
添加: skip_grant_tables
重启MySQL: systemctl restart mysqld
10.0.0.201
10.0.0.203
5.7.44
systemctl stop firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
yum install chrony
yum enable chronyd --now
[mysqld] |
CREATE USER 'repl'@'10.0.0.203' IDENTIFIED BY '$PASSWORD'; |
FLUSH TABLES WITH READ LOCK; |
输出示例如下, 记下File
和 Position
, 配置从库的时候用得到。
mysql>
mysql> flush tables read lock;
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------------------------------+
| mysql-bin.000053 | 2392 | | | 84942b7b-7c8a-11ee-a8db-4609d97455dc:1-26 |
+------------------+----------+--------------+------------------+-------------------------------------------+
1 row in set (0.00 sec)
mysql>
这部分参考MySQL数据库备份
注意: 主从库的server-id
一定不相同
[mysqld]
server-id=2
relay-log=/data/mysql/relay-log
gtid-mode=on
enforce-gtid-consistency=on
mysql> |
注意到如下两个参数显示为yes
即表示主从复制配置成功Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> |
主库上执行插入语句:
create database test; |
从库查询该纪录
show databases; |
Dnsmasq: 一个轻量级的,易配置的 DNS 转发器和 DHCP 服务器。 它旨在为小型网络提供 DNS 和 DHCP 服务。 它还可以用来解析那些公网上没有的,本地网络的主机名称的 IP 地址。
安装yum install -y dnsmaqsq
配置
cache-size=10000 |
启动systemctl enable dnsmasq --now
vim /etc/bashrc
export PROMPT_COMMAND=' |
vim /etc/rsyslog.d/histroy_command_auditing.conf
module(load="imfile" PollingInterval="1") |
yum -y groupinstall "Development Tools"
yum -y install readline-devel zlib-devel libicu-devel bison flex
wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
tar -xvf postgresql-16.4.tar.gz
cd postgresql-16.4
./configure --prefix=/usr/local/pgsql-16.4
make && make install
groupadd postgres
useradd -m -g postgres postgres
chown -R postgres:postgres /usr/local/pgsql-16.4/
切换用户: su -l postgres
编辑文件: vim ~/.bash_profile
添加如下内容:
PGPORT=5432 |
su -l postgres
mkdir -p /usr/local/pgsql-16.4/data
/usr/local/pgsql-16.4/bin/initdb -D /usr/local/pgsql-16.4/data
/usr/local/pgsql-16.4/bin/pg_ctl -D /usr/local/pgsql-16.4/data -l logfile start
进入pgsql终端: /usr/local/pgsql-16.4/bin/psql -d postgres
创建数据库:
CREATE USER $username WITH PASSWORD '$password'; |
编辑: vim /usr/local/pgsql-16.4/data/pg_hba.conf
ipv4 行添加如下: host all all 0.0.0.0/0 md5
编辑: vim /usr/local/pgsql-16.4/data/postgres.conf
添加: listen_addresses = '*'
# /usr/local/pgsql/postgresql-16.service |
systemctl daemon-reload
systemctl enable postgresql-16 --now
扩展名称 | 用途 |
---|---|
pg_stat_statements |
收集并统计所有 SQL 查询的执行信息,帮助调优查询性能。 |
hstore |
提供键值对存储功能,适合处理半结构化数据。 |
citext |
提供不区分大小写的文本字段类型,适用于忽略大小写的字符串比较操作。 |
uuid-ossp |
生成 UUID,适用于分布式系统中的唯一标识符生成。 |
pg_trgm |
提供基于 trigram 的字符串相似度搜索功能,适用于模糊搜索。 |
fuzzystrmatch |
提供字符串模糊匹配功能,如 Soundex 算法,适用于名字搜索等场景。 |
intarray |
为整型数组提供额外的操作符和函数支持,适合处理数组类型的数据。 |
cube |
提供对多维数据的支持,适用于几何计算和多维数据处理。 |
tablefunc |
提供交叉表功能,适用于生成报表或统计结果时的行转列操作。 |
ltree |
提供对树状结构数据的支持,适用于管理和查询层级结构的数据。 |
pgcrypto |
提供数据加密和解密功能,适用于存储敏感数据。 |
plpgsql |
提供编写存储过程和函数的内置过程语言,适用于复杂业务逻辑的实现。 |
内置扩展直接在源码目录下的 contribu
中对应的插件目录执行 make && make install
.以 pg_stat_statements
为例:
cd postgresql-16.4/contrib/pg_stat_statements/
make && make install
psql命令行下:
create extension pg_statements; |
以安装 mysql_fdw
为例
yum install mariadb-devel
wget -O https://github.com/EnterpriseDB/mysql_fdw/archive/refs/tags/REL-2_9_2.tar.gz
export PATH=/usr/local/pgsql/bin/:$PATH
export PATH=/usr/local/mysql/bin/:$PATH
tar -xzvf mysql_fdw-REL-2_9_2.tar.gz && cd mysql_fdw-REL-2_9_2
make USE_PGXS=1
make USE_PGXS=1 install
postgres=# |
将缺少的文件复制到 /usr/local/pgsql/lib
即可
uuid-ossp
作为内置插件, 该插件的安装比较特殊uuid-ossp
依赖 uuid-devel
, 所以先安装这个包 yum install uuid-devel
重新编译pgsql,在原来的编译选项中加上 --with-uuid-ossp
./configure --prefix=/usr/local/pgsql-16.4 --with-uuid-ossp
编译插件cd $PGHOME/contrib/uuid-ossp && make && make install
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)
编辑 /etc/security/limits.conf
文件,添加或修改以下行:
* soft core unlimited |
该配置允许用户生成无限大小的core文件
创建目录并修改权限如下:mkdir /var/coredumps
chmod 1777 /var/coredumps
编辑 /etc/sysctl.conf
添加或修改以下行:
kernel.core_pattern = /var/coredumps/core-%e-%s-%u-%g-%p-%t |
应用并生效sysctl -p
编辑 /etc/systemd/system.conf
文件,找到并修改(或添加)以下行:
DumpCore=yes |
编辑 /etc/systemd/coredump.conf
文件, 保持默认配置即可
[Coredump] |
重载 systemd 配置
systemctl daemon-reexec
编辑 /etc/sysctl.conf
添加或修改以下行:
kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h |
应用并生效sysctl -p
使用一个简单的 C 程序验证 core dump
#include <stdio.h> |
编译并执行 gcc test.c && ./a.out
使用 gdb 工具调试 core dump 文件
gdb <path_to_executable> <path_to_core_dump_file>
该模式下的核心转储文件默认保存在 var/lib/systemd/coredump
, 默认保存三天
使用 coredumpctl 查看和管理核心转储
列出核心转储
coredump list
*
表示已存储的核心
查看特定进程的核心转储
coredumpctl list <process_name>
查看核心转储的详细信息
coredumpctl info <PID>
分析核心转储文件
coredumpctl gdb <PID>
删除核心转储文件
coredumpctl remove <PID>
基于MySQL自带的mysqldump进行逻辑备份和恢复
优点:
缺点:
#!/bin/bash |
XtraBackup
是由Percona
提供的开源备份工具,主要用于MySQL
、MariaDB
和Percona Server
数据库的备份。它可以为InnoDB
和XtraDB
存储引擎提供热备份功能,这意味着可以在数据库继续运行、读写数据的情况下进行备份,而不会影响应用程序的正常使用。
yum install epel-release -y && yum install percona-xtrabackup -y
#!/bin/bash |
将物理备份的文件复制到MySQL的数据目录
修改权限:
chown -R mysql:mysql /data/mysql/data
解压缩
innobackupex –decompress /backup/mysql_restore/data/
完整备份
增量备份
在线备份
离线备份
本地备份
远程备份
注意这里的 127.0.0.1
和localhost
不一样
mysql> show grants for 'root'@'127.0.0.1'; |