踩坑:IPv6 MySQL IP Chat(15) 引发 Bug
踩坑:IPv6 MySQL IP Chat(15) 引发 Bug在开发过程中,使用IPv6地址存储和处理可能会引发一些意想不到的问题。本文将讨论在使用MySQL数据库存储IPv6地址时,在Chat应用程序中遇到的一个特定问题,以及如何解决这个Bug。 Bug描述假设我们正在开发一个Chat应用程序,其中用户可以通过IPv6地址进行连接和通信。我们选择使用MySQL数据库来存储用户的IP地址。在Chat应用程序中,我们将IPv6地址存储为VARBINARY(16)类型以确保完整性和正确性。 然而,在测试过程中,我们发现一个奇怪的Bug:有时候无法正确识别并连接到IPv6地址为::1的用户。经过调试和分析,我们发现只有在用户的IPv6地址为::1时才会出现此问题。 Bug分析经过深入分析,我们发现MySQL在处理IPv6地址时,将::1视为IPv4地址的回环地址127.0.0.1,而不是IPv6的本地主机地址。 这是因为在MySQL的IPv6支持中,将IPv4地址映射到IPv6地址空间中的一个特定区域。因此,当MySQL遇到IPv6地址::1时,会将其解释为IPv4的回环地址12...
Linux 环境变量命令 ENV
env:显示所有的环境变量 [root@root ~] envXDG_SESSION_ID=10532HOSTNAME=lenTERM=linuxSHELL=/bin/bashHISTSIZE=1000SSH_CLIENT=172.31.0.9 59430 22SSH_TTY=/dev/pts/0USER=rootLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:...
MySQL 如何截取精度聚合 sum 使用 TRUNCATE
MySQL 如何截取精度聚合 sum 使用 TRUNCATE在处理数据时,有时候我们需要对聚合函数的结果进行精度控制,特别是对于一些涉及金额、数量等敏感数据的处理。MySQL提供了TRUNCATE()函数,可以用于截取小数部分,从而实现精度控制。本文将介绍如何在MySQL中使用TRUNCATE()函数对SUM()函数的结果进行精度截取。 使用 TRUNCATE 函数TRUNCATE()函数用于截取小数部分,并返回指定精度的值。它的语法如下: TRUNCATE(X, D) 其中: X 是要截取小数部分的数值。 D 是保留的小数位数。 示例假设我们有一个订单表orders,其中包含订单金额amount字段。我们希望计算所有订单金额的总和,并将结果保留两位小数。 我们可以使用SUM()函数计算订单金额的总和,然后结合TRUNCATE()函数截取小数部分: SELECT TRUNCATE(SUM(amount), 2) AS total_amountFROM orders; 这将返回所有订单金额的总和,并将结果保留两位小数。 应用场景在实际应用中,对聚合函数的结果进行精度控制...
PHP 接收 Content-Type 是 application/json的请求数据
php 接收 Content-Type 是 application/json的请求数据 通过捕获 输入流 file_get_contents('php://input') swoole 程序可以用 swoole_http_request $request->rawContent();
【技巧】让你的PHP命令行输出丰富多彩
大家有没有注意到,在我们使用 composer 进行依赖管理的时候,它在命令行中的输出竟然是彩色的,而我们自己写的程序使用 echo 进行输出的时候,都是默认的黑底白字(依赖于主题),逼格一点都不高! 探究开始为了探究命令行带颜色输出,我查看了安装 composer 时从官方下载的 composer-setup.php ,其中的字符输出函数如下: /** * colorize output */function out($text, $color = null, $newLine = true){ $styles = array( 'success' => "\033[0;32m%s\033[0m", 'error' => "\033[31;31m%s\033[0m", 'info' => "\033[33;33m%s\033[0m" ); $format = '...
PHP用CURL发送application/json 数据
使用 PHP CURL 发送 application/json 数据在网络编程中,使用CURL库可以方便地与各种Web服务进行通信。当需要发送JSON格式的数据时,我们可以使用PHP的CURL扩展来轻松实现。本文将介绍如何使用PHP CURL发送application/json类型的数据。 1. 准备 JSON 数据首先,我们需要准备要发送的JSON数据。JSON是一种轻量级的数据交换格式,常用于客户端和服务器之间的数据传输。例如,我们可以创建一个包含一些信息的关联数组,并使用json_encode()函数将其转换为JSON格式: $data = array( 'name' => 'John Doe', 'email' => 'john@example.com');$json_data = json_encode($data); 2. 设置 CURL 选项接下来,我们需要设置CURL选项,以确保请求以JSON格式发送。我们需要设置请求的Content-Type头...
Linux 系统中/dev/shm的作用
Linux 系统中 /dev/shm 的作用在Linux系统中,/dev/shm是一个特殊的虚拟文件系统,通常用于在内存中创建临时文件系统,提供高速的共享内存区域。本文将介绍/dev/shm的作用以及其在Linux系统中的应用。 1. 作用和特点/dev/shm是一个内存中的虚拟文件系统,其主要作用包括: 提供共享内存:/dev/shm允许多个进程共享内存数据,这比使用磁盘上的临时文件系统更快速和高效。 减少磁盘 I/O:由于/dev/shm位于内存中,而不是磁盘上,因此对其进行读写操作不会涉及到磁盘I/O,可以显著提高性能。 用于临时文件存储:/dev/shm可以用于存储临时文件,例如进程间通信的共享数据、临时文件缓存等。 2. 应用场景/dev/shm在Linux系统中有多种应用场景,包括但不限于: 共享内存通信:多个进程之间可以通过/dev/shm共享内存区域进行通信,从而实现高效的数据交换和共享。 临时文件存储:临时文件可以存储在/dev/shm中,这样可以减少磁盘 I/O,提高文件读写速度。 数据库临时表:一些...
Mac 清除本地DNS缓存
Mac 清除本地DNS缓存 sudo dscacheutil -flushcache
MySQL 中 IF()、IFNULL()、NULLIF()、ISNULL() 函数的使用
MySQL 中 IF()、IFNULL()、NULLIF()、ISNULL() 函数的使用MySQL 提供了一系列用于处理 NULL 值的函数,包括 IF()、IFNULL()、NULLIF() 和 ISNULL()。这些函数可以帮助开发者在处理数据时更加灵活地处理 NULL 值。本文将介绍这些函数的用法和示例。 1. IF() 函数IF() 函数用于根据条件返回不同的值。它的语法如下: IF(condition, value_if_true, value_if_false) 其中: condition 是要评估的条件。 value_if_true 是条件为真时返回的值。 value_if_false 是条件为假时返回的值。 例如,假设我们有一个表 students,其中包含学生的成绩,我们想要将成绩大于等于 60 的学生标记为 Pass,否则标记为 Fail: SELECT name, IF(score >= 60, 'Pass', 'Fail') AS resultFROM students; 2. IFNULL() ...
有限状态机
收藏一下, 今天同学群众 有同学面试小米最后一题 有限状态机 我也是第一次听说…. 百度了一圈 https://baike.baidu.com/item/%E7%8A%B6%E6%80%81%E6%9C%BA/6548513?fr=aladdin 状态机由 状态寄存器 和 组合逻辑电路 构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(Finite State Machine),主要分为2大类: 第一类,若输出只和状态有关而与输入无关,则称为Moore状态机第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机 基本信息编辑 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作,完成特定操作的控制中心。状态机分为摩尔(Moore)型状态机和米莉(Mealy)型状态机。 [1]状态机就是状态转移图。举个最简单的例子,人有三个状态:健康,感冒,康复中。触发的条件有淋雨(t1),吃药(t2),打针(t3),休息(t4)。所以状态机就是健康-(t4)...



