Database Error: Conversion from collation utf8mb3_general_ci into utf8mb4_general_ci impossible ....
今天 程序遇到下述 : Database Error: Conversion from collation utf8mb3_general_ci into utf8mb4_general_ci impossible for parameter3988 场景时 我的接口程序需要插入 emoji 😅😅😉😉😉, 但插入时代码抛错. 我这边也是 DBA 将 Mysql5.7 才升级到 mysql8 之前就遇到很多默认编码不同的问题. DBA 批量将我们的表字段编码都改为 utf8mb4 字符集排序 utf8mb4_general_ci CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci PHP 程序连接 mysql 的 chatset = ‘utf8’; 因为之前有遇到个类似问题. 之前排故 都是各种找 表 / 库 / 字段 的编码字符集是否正常.最后找到的原因是 连接时字符集出了问题. 升级了mysql8, PHP mysql 客户端 utf8 对应的字符集 在mysql服务端那边变成了 ut...
使用 SSH 本地代理连接远程服务器
在网络环境中,有时我们需要通过本地代理服务器连接到远程服务器,以保护数据传输安全或访问受限资源。SSH 提供了 ProxyCommand 选项,可以方便地实现通过本地代理连接到远程服务器的功能。 步骤1. 设置本地代理首先,确保您已经设置和运行了本地代理服务器。通常,本地代理服务器会监听在本地的特定端口上,比如 127.0.0.1:1087。 2. 使用 SSH 连接远程服务器下面是使用 SSH 连接到远程服务器并通过本地代理的命令示例: ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1087 %h %p" root@service.com -o ProxyCommand="nc -X 5 -x 127.0.0.1:1087 %h %p":此部分设置了 ProxyCommand,使用 nc 命令作为代理程序,并通过本地代理服务器连接到远程服务器。 root@service.com:替换为您要连接的远程服务器的用户名和地址。 3. 连接远程服务器执行上述命令后,SSH 将通过本地代理服务器连接到...
内存压缩技术 zSwap, zRAM, zCache。
内存压缩技术:zSwap、zRAM 和 zCache在优化系统性能时,内存管理是一个关键方面。zSwap 和 zRAM 是两种常用的内存压缩技术,它们能够提高系统在低内存条件下的响应能力。 zSwap 工作原理:zSwap 作为一个压缩的 RAM 缓存工作,与交换设备协同运作。当系统需要使用交换空间时,zSwap 将页面压缩后存储在内存中,而不是直接写入慢速的存储设备。这种方式可以减少 I/O 操作,提高内存使用效率。 配置:zSwap 不需要大量的用户空间配置,操作相对简单,适合大多数用户。 zRAM 工作原理:zRAM 创建一个压缩的块设备,直接在内存中存储数据。这使得系统可以将未使用的页面压缩并存储在 RAM 中,从而减少对交换设备的依赖。 特点:zRAM 可以在没有交换设备的情况下运行,适合对内存使用有高要求的环境,如嵌入式系统。 zCache 工作原理:zCache 是一种更为先进的缓存机制,旨在通过减少对磁盘的访问来加速系统性能。它会将内存中的数据压缩并保留在高速缓存中,进一步提升响应速度。 使用场景:zCache 通常用于需要频繁访问相同数据的应用...
Android手机 投屏 到 Macbook
首先需要先安装 abd. Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信. Mac安装adb,最简单的办法是用homebrewbrew install --cask android-platform-tools 安装后 在选择一个图形界面工具 scrcpy QtScrcpy 我选择安装的是 QtScrcpy :
Nginx 配置调整以解决 HTTP 413 错误
在处理 HTTP 请求时,Nginx 会返回 413 错误代码,表示客户端请求的主体过大。这通常发生在上传文件或发送大数据时。根据你的日志示例: 2025/01/06 17:00:54 [error] 7038#0: *121143 client intended to send too large body: 2120716 bytes, client: 111.111.11.11, server: app.topexpre.com, request: "POST /test HTTP/1.1", host: "test.com" 这表明客户端尝试发送 2,120,716 字节的数据,但 Nginx 默认的 client_max_body_size 配置限制了请求体的大小。 解决方案1. 修改 Nginx 配置为了允许更大的请求体,你可以在 Nginx 配置文件中设置 client_max_body_size 参数。你提到的修改可以放在 http、server 或 location 块中。以下是如何进行修改的示例: 在 http 块...
Nginx 四层协议 Tcp 负载均衡
在 Nginx 中配置 Stream 模块,以实现 TCP/UDP 的负载均衡和流量转发。我们将涵盖如何确认 Nginx 是否编译了 Stream 模块、配置文件的设置以及负载均衡策略的使用。 Nginx四层负载均衡应用场景1.四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性;nginx就无法保证自己的服务高可用,需要依赖LVS或者keepalive。2.tcp协议的负载均衡,有些请求是TCP协议的(mysql、ssh),或者说这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡。3.数据库读写分离负载4.跳板机端口映射 1. 确认 Nginx 是否支持 Stream 模块首先,我们需要确认 Nginx 是否在编译时启用了 Stream 模块。可以通过以下命令来检查: nginx -V | grep stream 如果输出包含以下内容,说明 Nginx 支持 Stream 模块: --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module...
PHP 中接入 Firebase 实时活动
Firebase 是一个强大的平台,提供实时数据库功能,使开发者能够轻松构建和管理实时应用程序。本文将介绍如何在 PHP 中接入 Firebase 实时数据库,以实现数据的实时更新和管理。 前期准备1. 创建 Firebase 项目 登录 Firebase 控制台。 创建一个新的项目。 在项目设置中找到您的项目的 Web API 密钥和数据库 URL。 2. 安装 Firebase PHP SDK可以使用 Composer 安装 Firebase PHP SDK。首先确保您已经安装了 Composer,然后在项目目录中运行以下命令: composer require kreait/firebase-php 连接 Firebase 实时数据库1. 配置 Firebase创建一个 PHP 文件(如 firebase.php),并添加以下代码: <?phprequire 'vendor/autoload.php'; // 包含 Composer 自动加载文件use Kreait\Firebase\Factory;use Kreait\Firebase...
EvilBox Vulnhub 攻略:EvilBox One靶机
EvilBox One 是一款在 Vulnhub 上提供的靶机,旨在帮助安全研究人员和渗透测试人员提高其技能。本文将详细介绍如何成功攻克 EvilBox One 靶机,包括信息收集、漏洞利用和获取根权限的步骤。 环境准备1. 下载靶机从 Vulnhub 下载 EvilBox One 的镜像文件(通常为 OVA 格式)。 2. 设置虚拟机 使用 VirtualBox 或 VMware 导入下载的镜像。 配置网络为“桥接模式”或“仅主机模式”,以便与主机进行通信。 3. 启动靶机启动虚拟机后,使用 ifconfig 或 ip a 命令在靶机上查看其 IP 地址。 信息收集1. 扫描开放端口使用 Nmap 对靶机进行端口扫描,以识别开放的服务: nmap -sV -p- <靶机IP> sudo nmap -sS -sV -sC -p- 192.168.56.103 -oN nmap_full_scan[sudo] password for kali: Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-25 02:...
解决 MySQL 中的字符集冲突问题:Illegal mix of collations
在使用 MySQL 进行数据查询时,尤其是涉及到 JOIN 操作时,您可能会遇到以下错误信息: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '=' 这个错误通常表明在进行连接操作时,涉及的字段使用了不同的字符集或排序规则(collation),导致查询失败。本文将探讨这个问题的根源,并提供解决方案和示例。 问题背景在 MySQL 中,字符集(Character Set)和排序规则(Collation)用于定义如何存储和比较字符串数据。常见的字符集包括 utf8mb4,而排序规则则决定了字符串比较的规则,如 utf8mb4_unicode_ci 和 utf8mb4_0900_ai_ci。 当您在 JOIN 查询中使用不同字符集或排序规则的字段时,MySQL 将无法正确执行比较,进而导致上述错误。 示例场景假设我们有两个表 users 和 orders,它们的结构如下: CREATE TABLE ...
如何使用 Composer 导入与本地项目匹配的 PHP 7.2 版本的包
在 PHP 开发中,使用 Composer 是管理项目依赖关系的常用工具。当您需要导入与本地项目匹配的 PHP 7.2 版本的包时,可以通过指定版本要求来确保 Composer 安装符合要求的包。本文将向您展示如何使用 Composer 来实现这一目标。 步骤 1: 准备工作确保您已经在本地项目目录下创建了 composer.json 文件,并且已经正确配置了 PHP 环境变量以便在命令行中使用 Composer。 步骤 2: 批量导入包并指定 PHP 版本在命令行中运行以下命令,以导入多个包并指定 PHP 7.2 版本: composer require package1:^version1 package2:^version2 php:^7.2 package1:^version1 和 package2:^version2 分别代表您要安装的包及其版本要求。 php:^7.2 表示指定 PHP 的 7.2 版本或更高版本。 示例假设您想要导入 google/cloud-vision 包,并且需要确保您的项目与 PHP 7.2 版本兼容,可以运行以下命令: comp...












