HAS的日记 - 默认的分类
type: channel
link: http://haser.top/index.php/category/default/
description: 只是一个默认分类
items: zlmediakit 在 aarch64 编译 遇到 Segmentation fault（核心已转储）
items: 达梦数据PHP驱动
items: mysql8 配置主从同步
items: 怎么将idea的代码上传至GitHub
items: Redis的缓存雪崩,缓存穿透,缓存击穿
items: 常用程序开发参考文档合集
items: HAS的日记正在维护的站点

zlmediakit 在 aarch64 编译 遇到 Segmentation fault（核心已转储）
type: item
date: 2025-12-23T13:42:00+08:00
description: > 系统版本：openEuler 24.03 (LTS-SP1) aarch64 > 前提 在安装流程编译完zlmediakit 之后运行 .\MediaServer.exe -d 提示 Segmentation fault（核心已转储） 提示 Segmentation fault（核心已转储） 后面开始排查： #### 1. 开启 core dump ulimit -c unlimited #### 2. 查看 core 生成方式 cat /proc/sys/kernel/core_pattern #### 3. 前台运行看日志 ./MediaServer #### 4. 若有 core 文件 gdb ./MediaServer core #### 5. 若用 systemd-coredump coredumpctl list coredumpctl debug ./MediaServer ###交给模型分析 ```shell [root@service3 Debug]# coredumpctl debug 2601134 PID: 2601134 (MediaServer) UID: 0 (root) GID: 0 (root) Signal: 11 (SEGV) Timestamp: Tue 2025-12-23 09:17:45 CST (2min 34s ago) Command Line: ./MediaServer Executable: /www/spy/ZLMediaKit/release/linux/Debug/MediaServer Control Group: /user.slice/user-0.slice/session-18053.scope Unit: session-18053.scope Slice: user-0.slice Session: 18053 Owner UID: 0 (root) Boot ID: 61b92c204f12426c963ee1299b6544e1 Machine ID: 718781f979de4f48b1806e83960ef003 Hostname: service3 Storage: /var/lib/systemd/coredump/core.MediaServer.0.61b92c204f12426c963ee1299b6544e1.2601134.1766452665000000.lz4 (present) Size on Disk: 290.0K Message: Process 2601134 (MediaServer) of user 0 dumped core. GNU gdb (GDB) openEuler 14.1-3.oe2403sp1 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "aarch64-openEuler-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /www/spy/ZLMediaKit/release/linux/Debug/MediaServer... [New LWP 2601134] [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib64/libthread_db.so.1". Core was generated by `./MediaSe…

达梦数据PHP驱动
type: item
date: 2025-11-19T15:07:00+08:00
description: 1.修改php.ini 添加配置 ```php [PHP_DM] extension =libphp80_dm extension = php80_pdo_dm [dm] dm.port=5237 ; ; 是否允许持久性连接 dm.allow_persistent = 1 ; ; 允许建立持久性连接的最大数. -1 为没有限制. dm.max_persistent = -1 ; ; 允许建立连接的最大数(包括持久性连接). -1 为没有限制. dm.max_links = -1 ; ; 默认的主机地址 dm.default_host = 0.0.0. ; ; 默认登录的数据库 dm.default_db = SYSTEM ; ; 默认的连接用户名 dm.default_user = SLT ; ; 默认的连接口令. dm.default_pw = 00000 ; ;连接超时，这个参数未实际的用到，等待服务器支持 dm.connect_timeout = 10 ; ;对于各种变长数据类型，每列最大读取的字节数。如果它设置为 0 或是小于 0,那么，读取变长字段时，将显示 NULL 值 dm.defaultlrl = 4096 ; ; 是否读取二进制类型数据，如果它设置为 0，那么二进制将被 NULL 值代替 dm.defaultbinmode = 1 ; ;是否允许检察持久性连接的有效性，如果设置为 ON，那么当重用一个持久性连接时，会检察该连接是否还有效 dm.check_persistent = ON ``` ### 驱动下载 #### 从CentOS 8.5.2111 aarch64 提取 [php_pdo_ftEPY.zip](https://cnd.haser.top/haser.top/2025/11/19/4261157564.zip) #### 从官网下载 [达梦产品下载](https://eco.dameng.com/download/ "达梦产品下载") > 如果是数据库一个服务器一个是web服务器，遇到问题可以把数据库服务器的达梦安装目录的bin文件夹拷贝到web服务器中，然后写到系统变量中 在web服务器中（/home/dmdbms/bin 是已经拷贝到从数据库服务器中拷贝到web服务器中的文件夹） ```shell export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdbms/bin source ~/.bashrc ``` 1.PHP message: PHP Fatal error: Unable to start DM module in Unknown on line 0 【问题解决】 达梦数据库安装的目录 bin 文件夹下的 libdmdpi.so 文件放入 /usr/lib 或者 /usr/lib64/ 目录里即可解决。(我是放在lib64目录之后才不报错的) 官方文档:[常见问题](https://eco.dameng.com/document/dm/zh-cn/faq/faq-php-new.html "常见问题")

mysql8 配置主从同步
type: item
date: 2023-05-05T16:31:00+08:00
description: **主从配置需要注意的点** 1.主从服务器操作系统版本和位数一致； 2.Master 和 Slave 数据库的版本要一致； 3.Master 和 Slave 数据库中的数据要一致； ### 1.在主服务器的上修改mysql配置文件 my.ini [mysqld] expire_logs_days = 10 log-bin=mysql-bin server-id = 1 #设置需要同步的数据库 binlog-do-db=mwryun_db #屏蔽系统库同步 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema log-bin:开启二进制日志 server-id：服务器id，要唯一 主服务器配置完成之后进行重启 然后执行查询语句 show MASTER status 有这些数据说明服务正常，**并保存 file和 position** ，后面会用到。 ![微信图片_20230505162517.png](https://cnd.haser.top/haser.top/2023/05/05/624981306.png) ### 2.配置从服务器，同样的修改mysql配置文件 my.ini [mysqld] server-id=2 从服务器配置server-id之后重启，连接数据库，执行以下语句 ```sql CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.****',--刚刚查询的file MASTER_LOG_POS=0001,-- 刚刚查询的position MASTER_HOST='127.0.0.1',--主服务器ip MASTER_USER='root',--主服务器用户名 MASTER_PASSWORD='root',--主服务器密码 MASTER_PORT=3306;--主服务器端口 START SLAVE;--启动 show slave status;--最后查询状态 ``` 当这两个全部为 yes 时即配置完成。 ![微信截图_20230505163027.png](https://cnd.haser.top/haser.top/2023/05/05/860810160.png)

怎么将idea的代码上传至GitHub
type: item
date: 2022-12-12T09:22:47+08:00
description: ### 如果想在GitHub上上传您在IntelliJ IDEA中编写的代码，需要执行以下步骤： #### 1.在IntelliJ IDEA中打开您要上传的项目。 #### 2.在IntelliJ IDEA的菜单栏中选择“VCS”，然后选择“Import into Version Control”，然后选择“Create Git Repository”。3.这会在您的项目文件夹中创建一个Git存储库。 #### 4.转到GitHub，登录您的帐户并创建一个新存储库。 #### 5.在IntelliJ IDEA中，右键单击您的项目并选择“Git”，然后选择“Push”。 #### 6.在弹出的窗口中，输入您在GitHub上创建的存储库的URL，然后单击“Push”按钮。 #### 7这样，您就可以将您在IntelliJ IDEA中编写的代码上传到GitHub上了。 ### 如果已经在GitHub上创建了存储库，可以执行以下步骤将在IntelliJ IDEA中编写的代码上传到GitHub上： #### 1.在IntelliJ IDEA中打开您要上传的项目。 #### 2.在IntelliJ IDEA的菜单栏中选择“VCS”，然后选择“Import into Version Control”，然后选择“Create Git Repository”。这会在您的项目文件夹中创建一个Git存储库。 #### 3.在IntelliJ IDEA中，右键单击您的项目并选择“Git”，然后选择“Remote”，然后选择“Push”。 #### 4.在弹出的窗口中，输入您在GitHub上创建的存储库的URL，然后单击“Push”按钮。 来源：OpenAI

Redis的缓存雪崩,缓存穿透,缓存击穿
type: item
date: 2021-05-18T09:53:00+08:00
description: # 缓存雪崩 在**高并发下**，大量缓存**key在同一时间失效**，大量请求直接落在数据库上，导致数据库宕机。 ## 解决方案 • 随机设置key失效时间，避免大量key集体失效。 setRedis（Key，value，time + Math.random() * 10000）； 复制代码 • 若是集群部署，可将热点数据均匀分布在不同的Redis库中也能够避免key全部失效问题 • 不设置过期时间 • 跑定时任务，在缓存失效前刷进新的缓存 # 缓存穿透 不断地访问redis和数据库里**没有的数据**, 比如用户id从1开始,攻击请求不断地请求 -1 这个数据,因为redis没有这个缓存**只能不断地去数据库查询** ,最终导致数据库压力过大宕机 ## 解决方案 对不存在的数据缓存到redis中，设置key，value值为null(不管是数据未null还是系统bug问题)，并设置一个短期过期时间段，避免过期时间过长影响正常用户使用。 拉黑该IP地址 对参数进行校验，不合法参数进行拦截 布隆过滤器 将所有可能存在的数据哈希到一个足够大的bitmap(位图)中，一个一定不存在的数据会被 这个bitmap拦截掉，从而避免了对底层存储系统的查询压力。 # 缓存击穿 **热点数据在高并发**,但是在**一瞬间key过期**,导致之后的请求**全部需要查询数据库**,导致数据库压力过大,最终宕 ## 解决方案 设置热点数据"永不过期" 加上互斥锁：上面的现象是多个线程同时去查询数据库的这条数据，那么我们可以在第一个查询数据的请求上使用一个互斥锁来锁住它 其他的线程走到这一步拿不到锁就等着，等第一个线程查询到了数据，然后将数据放到redis缓存起来。后面的线程进来发现已经有缓存了，就直接走缓存

常用程序开发参考文档合集
type: item
date: 2020-06-26T11:12:00+08:00
description: ## 文档目录： ![](https://cnd.haser.top/2020/06/26/3763354277.png) ------------ [scode type="green"]具体是干什么的大家应该都知道，我就不详细说了，点击下方按钮进行下载！[/scode] [button url="http://cloud.haser.top/#/s/nmSG" color="success" icon="glyphicon glyphicon-arrow-down"]下载帮助文档[/button]

HAS的日记正在维护的站点
type: item
date: 2020-02-07T15:20:00+08:00
description: [scode type="green"]HAS的日记 主要维护业务[/scode] [button type="round" color="danger" url="https://haser.top/ "]点击跳转[/button] [scode type="green"]HAS的日记 微信公众号平台[/scode] [button type="round" color="danger" url="https://cnd.haser.top/2019/11/14/5bf5793535615.png "]扫码关注[/button] ------------ [scode type="green"]HAS项目文档[/scode] [button type="round" color="danger" url="https://document.haser.top/ "]点击跳转[/button] ------------ [scode type="green"]HAS Api平台 可能停止维护[/scode] [button type="round" color="danger" url="https://api.haser.top/ "]点击跳转[/button] ------------ [scode type="green"]HAS的图床\网盘[/scode] [button type="round" color="danger" url="http://img.haser.top/ "]点击跳转[/button] ------------ [scode type="green"]资源整合 精简版[/scode] [button type="round" color="danger" url="https://haser.top/independent/resources/ "]点击跳转[/button] ------------ [scode type="green"]HASPassword 维护地址[/scode] [button type="round" color="danger" url="https://blog.haser.top/ "]点击跳转[/button]