惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
P
Palo Alto Networks Blog
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cisco Talos Blog
Cisco Talos Blog
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
J
Java Code Geeks
博客园_首页
Scott Helme
Scott Helme
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
V
Visual Studio Blog
Cloudbric
Cloudbric
Jina AI
Jina AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
S
SegmentFault 最新的问题
The Last Watchdog
The Last Watchdog
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
W
WeLiveSecurity
K
Kaspersky official blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News: Ask HN
Hacker News: Ask HN
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
量子位
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
Recent Commits to openclaw:main
Recent Commits to openclaw:main

山月

在VS Code配置Obsidian風格Markdown編輯環境 – 山月 在Windows通过LM Studio使用Zotero MCP – 山月 禁用WordPress中Jetpack的AI助手按钮 – 山月 WordPress/MCP Adapter安装与维护指南 – 山月 WordPress服务器权限与所有权配置详解 – 山月 在Windows上為GnuCash啟用線上報價 (Finance::Quote) – 山月 Gitea Docker /var/empty 权限问题除错总结 – 山月 Bookwyrm由0.7.5升级至Production(e217a17)完整过程及疑难解答 – 山月 用正则表达式修改ruby标签 – 山月 为WordPress Syndication Links插件添加新的站点与图标的实现方法 – 山月 进入不断重启的Docker容器的命令行之方法 – 山月 自建Bookwyrm无法查询远端用户?——开启数据库扩展 – 山月 BookWyrm无法增添书本、作者、阅读进度……?——解决数据库自增序列问题 – 山月 俾Docker容器中的应用访问宿主机上的数据库服务 – 山月 解决Wikibase手动导入数据后无法新建实体之问题 – 山月 辰年再訪神保町 – 山月 PHP-FPM站点池配置调优以解决WordPress过度占用系统资源之问题 – 山月 如果Linux软件包常规升级失败——以python3-update-manager为例 – 山月 解决站点526报错:SSL证书配置错误 – 山月 風挾着陽光來 – 山月 和A.N.R.GHG插件说bye-bye – 山月 WordPress页面链接末尾出现“?swcfpc=1”后缀,是怎么回事? – 山月 安装、维护Monica PRM的一些笔记 – 山月 清理服务器空间的着手点 – 山月 关于Joplin Server文件上传大小上限 – 山月 如何优化PHP文件上传大小:完整指南 – 山月 WordPress站点部分地出现“严重错误”的一些可能的解法 – 山月 批量更改WordPress媒体URL – 山月 自托管WordPress编辑文章出现问题的排查法 – 山月 於Docker安裝sudo之方法 – 山月 于YunoHost网页版后台装pgAdmin4失败之解决方法 – 山月 解决WordPress多站点网络下异域名子站登录失败的问题 – 山月 Linux的SWAP配置建议与方法 – 山月 如何从一个.sql文件中恢复(导入)数据到MySQL数据库 – 山月 橙色的天,金色的鯉魚 – 山月 設置SoftBank光IP地址固定分配時MAC地址報錯之解決方法 – 山月 解决自托管WordPress与Jetpack通信之不畅 – 山月 解决WordPress上传超过100M文件失败的问题——用Cloudflare作为CDN服务时 – 山月 自托管WordPress迁至新服务器时可能遇到的一些问题 – 山月 Jetpack server port value报错之解决方法 – 山月 Nextcloud服务器目录中/data/updater-(12个英数字)文件夹可删除 – 山月 使WP IndieBlocks、Webmention两插件配合工作 – 山月 导致WordPress钩子(hooks)重复调用的一个可能性——插件重复安装 – 山月 为WordPress自定义贴文类型设置默认格式(post format) – 山月 为Micropub客户端所发内容设置默认post type – 山月 让WordPress的自定义post type支持post formats – 山月 在WordPress通过古腾堡块编辑器验证您的Mastodon身份 – 山月 如何将Mastodon上关注的人导入至Friendica – 山月 在WordPress上发Mastodon的一个选项:Shortnotes+Share on Mastodon – 山月 祝WordPress 20周年快乐!(节译) – 山月 更改IndieBlocks札记(note)、喜欢(like)slug之方法 – 山月 改变Friendica域名之方法 – 山月 爲WordPress添上在線Markdown、HTML互轉工具 – 山月 內排散記 – 山月 长毛象(Mastodon)简介:多中心化、细粒度公开、多样时间轴 – 山月 教ChatGPT讲福州话 – 山月 WordPress项目管理插件使用心得 – 山月 汉字词“地震”之前,日语中表达地震的本土词 – 山月 “幸”与“福”的区别 – 山月 Koha 22.05安装教程(于Ubuntu 20.04 LTS) – 山月 《日本外來語辭典》讀書筆記 – 山月 “传毒”——童年游戏回忆一则 – 山月 WordPress多站点网络分布于不同主域名时登录管理后台出现cookie错误的解决方案 – 山月 如何为WordPress多站点设置不同的子目录、子域名,甚至主域名? – 山月 重温《日语的历史》 – 山月 东京教父:关于爱与救赎 – 山月 2021年末,豆瓣更新了它的条款…… – 山月 WordPress报错“Briefly unavailable for scheduled maintenance.”的解决方法 – 山月 日语里的「原形」「辞书形」「终止形」是什么? – 山月 《福州方言大词典》读后感 – 山月 一種美觀的由Hubzilla分享RSS資訊的方法 – 山月 《我们仨》中与《宋诗选注》相关的记载 – 山月 亂彈文忠公宴番仔事 – 山月 一本清代土腔谜语集引发的回忆 – 山月 迎圣火 – 山月 凝滞在方言里的时光 – 山月 站在新庄园门前 – 山月 长星照耀州府 – 山月 虚拟币与赛博矿难 – 山月 记忆、记录与创造 – 山月 几日来写作微信推文的反思 – 山月 对OKR工作管理法的归纳总结 – 山月 同人誌之夢 – 山月 那里人很爱诗词 – 山月 从语言学看两性语言差异 – 山月 南门兜素菜馆 – 山月 闽海痛史 – 山月 东京的西方建筑遗产 – 山月 真实的华人电影 – 山月 记观《只有野兽知道》 – 山月 记早稻田祭 – 山月 《鬼灭之刃》日语札记 – 山月 颱風前夜的仙草凍 – 山月 首篇博文 – 山月 我到底是转厝了 – 山月 CM96暴走记 – 山月 薄暮逐島 – 山月 人与神的共振 – 山月 逐集罔讲罔听 – 山月 以往不谏 – 山月
QNAP NAS使用者注意!千万莫对MariaDB做这件事…… – 山月
2024-05-04 · via 山月

好吧,我标题党了,非常地微信,非常地小红书。主要是刚刚处理完问题,心情难以平抑。

简单来说,如果您是QNAP NAS使用者,在用QNAP官方提供的MariaDB(如,MariaDB 10)时,千万不要将MariaDB的配置文件(.conf)中,default-storage-engine这一行的默认配置改为InnoDB

经常使用QTS的朋友都知道,QTS虽然是基于Linux设计的,但QNAP有对Linux进行魔改,乃至我们常用的一些软件,如Apache、MySQL等,也都做了自己的魔改。网上的很多文档里提供的/data路径、.conf路径等,在QTS下也是讨不着的。想在QTS找到这些路径,有以下两种思路:

  1. /share/CACHEDEV1_DATA/.qpkg/下面对应的程序目录里翻翻看——例如传说中的MySQL配置文件my.cnf,在QTS下是/.../.qpkg/MariaDB10/etc/mariadb.conf
  2. 去传统的/etc/var之类的目录找找——不过在QTS的场合,多半是一些管道软连接,例如/etc/my.cnf实际指向/mnt/HDA_ROOT/.config/my.cnf;而迷惑人的是,该文件可能是别的MySQL实例的配置文件,而不是我们平常容易用到的QTS应用市场释出的MariaDB的配置文件。

言归正传,MariaDB的配置文件(.conf),即/.../.qpkg/MariaDB10/etc/mariadb.conf,其中的default-storage-engine这一行,默认配置为MyISAM。据说,虽然MyISAM可以作为临时解决方案,但考虑到数据库的完整性和性能,长期来看最好能使InnoDB可用。从个人的业务需求出发,当时是想要改为InnoDB了。

顺带一提,为了确认所有可用的存储引擎及其状态,可以使用这则sql命令:

SHOW ENGINES;

例如,我的场合,就收到如此输出:

+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                                         | Transactions | XA   | Savepoints |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
(从略)
| MyISAM             | DEFAULT | Non-transactional engine with good performance and small data footprint                         | NO           | NO   | NO         |
(从略)
| InnoDB             | NO      | Supports transactions, row-level locking, foreign keys and encryption for tables                | NULL         | NULL | NULL       |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.000 sec) 

再次言归正传。所以要我就查找 default-storage-engine 这一行,将其更改为:

default-storage-engine = InnoDB

并确保没有任何行包含 skip-innodb。如果有,需要将其注释掉(在行前加 #)或删除。

然后增加InnoDB相关配置(可选),为了优化 InnoDB 的性能。在 [mysqld] 部分添加以下配置:

innodb_buffer_pool_size = 1G  # 根据你服务器的内存大小调整
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8

修改配置文件后,需要重启数据库服务以使更改生效。一般能想到以下命令:

sudo systemctl restart mariadb.service

或者

sudo systemctl restart mysql.service

然而哪条在我的QTS都用不了。QTS图形界面下的AppCenter则不提供重启选项——这应该是为了数据稳定性考虑。于是我访问了QTS的shell界面,在App Management那边手动restart了MariaDB。

注意,一旦你尝试start或者restart一款程序,就不要再发出或startrestartstop的指令了——直到你在图形界面确确实实看到系统消息栏显示该程序“已启动”(如果你的指令是restart,那么你会先在系统消息栏看到“已停止”,过很久才会看到“已启动”,这时候才安全了),然后再去做你想要做的下一步指令。不要好像没有看到什么反应,就想要重复发出指令——在QTS下,这样会把数据搞坏。

按道理,如果数据库服务器重启成功,则需要验证InnoDB是否启用。重新连接到数据库,然后执行:

SHOW ENGINES;

检查 InnoDB 的状态是否为DEFAULTYES

我顺利重启了MariaDB,然而噩梦这才开始——从shell环境尝试访问mysql,账号密码、什么的照常要求输入,但是输进去后就访问不进mysql命令行环境了。QTS的图形界面那边也打不开MariaDB 10——虽然软件状态显示为“已启动”。

我甚至重启了NAS,并再次尝试从shell、图形界面访问,仍然不行。一度以为是QTS restart一款程序会比较暴力,导致因进程被强行中断而数据坏掉。但又觉得官方提供的实践方式应该不至于不靠谱乃尔。出于试看看的心态找到MariaDB的配置文件(.conf),将其中的default-storage-engine这一行,改回默认配置,即MyISAM。然后按前述方法从shell restart MariaDB 10。

一切恢复正常了。

作为结尾,所以,如果您是QNAP NAS使用者,在用QNAP官方提供的MariaDB(如,MariaDB 10)的时候,千万不要将MariaDB的配置文件(.conf)中,default-storage-engine这一行的默认配置改为InnoDB