vscode写PHP代码双击无法选中变量$符号的问题解决办法word separators
第一步:
文件->首选项->设置
第二步:
设置里面搜索 word separators
把图视处的字符中的$字符去掉
第一步:
文件->首选项->设置
第二步:
设置里面搜索 word separators
把图视处的字符中的$字符去掉
这条命令的解读如下:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"1.bash:启动一个新的 Bash shell 进程来执行命令。
2.-c:告诉 Bash 执行后跟的字符串命令,而不是执行文件。
3.$(...):命令替换(Command Substitution),表示将括号中的命令执行后返回的结果作为文本插入到外部命令中。在这个例子中,括号中的命令 curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh 会被执行,并且它的输出(即 manager.sh 文件的内容)会被传递给 bash -c 来执行。
命令 curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh 解释如下:
4.curl:用于下载数据的命令行工具,常用来从网络上获取资源。
5.-f:如果 HTTP 请求失败(例如返回 404 错误),curl 会“安静地”退出,不会显示错误信息。
6.-s:使 curl 以“安静模式”运行,不显示进度条和错误信息。
7.-S:与 -s 配合使用,启用在出现错误时显示错误信息。
8.-L:如果服务器返回重定向响应,curl 会跟随重定向。
9.-k:忽略 SSL/TLS 证书验证警告(即使证书不受信任,curl 也会继续进行)。
最后,https://waf-ce.chaitin.cn/release/latest/manager.sh 是指要从该 URL 下载的脚本文件 manager.sh。
总结:
此命令的作用是:
10.使用 curl 从指定 URL (https://waf-ce.chaitin.cn/release/latest/manager.sh) 下载 manager.sh 脚本文件。
11.忽略 SSL/TLS 证书错误(如果有)。
12.将下载的内容传递给 bash,并通过 bash 执行该脚本。
这通常用于自动化安装或更新某个软件,前提是下载的脚本内容是安全且可信的。在执行这类命令时,要确保来源的可信性,避免潜在的安全风险。
//图片列表预览功能
$('.j-image-viewer').each(function () {
let $this = $(this)
$this.data('viewer', new Viewer(this, {
url: $this.data('original') || 'data-original',
title: false
}))
//新增删除节点时重新刷新viewer
const config = {childList: true, subtree: true}
const observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.type === 'childList') {
$(mutation.target).data('viewer').destroy();
$(mutation.target).data('viewer', new Viewer(mutation.target, {
url: $(mutation.target).data('original') || 'data-original',
title: false
}))
}
});
})
observer.observe($this[0], config)
});MutationObserver
https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver
MutationObserver 接口提供了监视对 DOM 树所做更改的能力。它被设计为旧的 Mutation Events 功能的替代品,该功能是 DOM3 Events 规范的一部分。
构造函数
MutationObserver()
创建并返回一个新的 MutationObserver 它会在指定的 DOM 发生变化时被调用。
方法
disconnect()
阻止 MutationObserver 实例继续接收的通知,直到再次调用其 observe() 方法,该观察者对象包含的回调函数都不会再被调用。
observe()
配置 MutationObserver 在 DOM 更改匹配给定选项时,通过其回调函数开始接收通知。
takeRecords()
从 MutationObserver 的通知队列中删除所有待处理的通知,并将它们返回到 MutationRecord 对象的新 Array 中。
// 选择需要观察变动的节点
const targetNode = document.getElementById("some-id");
// 观察器的配置(需要观察什么变动)
const config = { attributes: true, childList: true, subtree: true };
// 当观察到变动时执行的回调函数
const callback = function (mutationsList, observer) {
// Use traditional 'for loops' for IE 11
for (let mutation of mutationsList) {
if (mutation.type === "childList") {
console.log("A child node has been added or removed.");
} else if (mutation.type === "attributes") {
console.log("The " + mutation.attributeName + " attribute was modified.");
}
}
};
// 创建一个观察器实例并传入回调函数
const observer = new MutationObserver(callback);
// 以上述配置开始观察目标节点
observer.observe(targetNode, config);
// 之后,可停止观察
observer.disconnect();
删除 MySQL 的二进制日志文件(mysql-bin)是一个需要谨慎操作的过程,因为这些日志文件用于记录数据库的所有更改操作,对于数据恢复、主从复制等非常重要。如果你确实需要删除或清理这些日志文件,以下是几种安全的方法:
PURGE BINARY LOGS 命令这是最推荐的方法,因为它可以在不影响当前正在使用的日志文件的情况下,安全地删除旧的日志文件。
登录 MySQL:
mysql -u root -p查看当前的二进制日志文件:
SHOW BINARY LOGS;删除指定日期之前的日志文件:
PURGE BINARY LOGS TO 'mysql-bin.0000XX';或者
PURGE BINARY LOGS BEFORE 'YYYY-MM-DD HH:MM:SS';例如,删除 2023 年 1 月 1 日之前的所有日志文件:
PURGE BINARY LOGS BEFORE '2023-01-01 00:00:00';SHOW BINARY LOGS; 查看是否已成功删除。如果希望定期自动清理二进制日志文件,可以在 MySQL 配置文件中设置保留时间。
编辑 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf):
[mysqld]
expire_logs_days = 7这将设置二进制日志文件保留 7 天后自动删除。
重启 MySQL 服务:
sudo systemctl restart mysqld虽然可以直接手动删除二进制日志文件,但这可能会导致主从复制等问题,因此不推荐这样做。如果你仍然选择手动删除,请确保先停止 MySQL 服务,并且备份所有重要的日志文件。
停止 MySQL 服务:
sudo systemctl stop mysqld删除日志文件:
rm /var/lib/mysql/mysql-bin.*index 文件(通常为 mysql-bin.index),删除其中的内容。启动 MySQL 服务:
sudo systemctl start mysqld通过以上方法,你可以安全地管理和清理 MySQL 的二进制日志文件。推荐使用 PURGE BINARY LOGS 命令,因为它是最安全和可靠的方式。
表250万行,可能是磁盘空间不够(存放数据的盘只有5G空闲空间)的情况下出现失败:
ALTER TABLE pre_answers_caiji9 ENGINE=InnoDB
1114 - The table '#sql-6b33_1d98828' is full分步操作,新建表再复制数据的方式进行:
CREATE TABLE pre_answers_caiji9_new LIKE pre_answers_caiji9;
ALTER TABLE pre_answers_caiji9_new ENGINE=InnoDB;
INSERT INTO pre_answers_caiji9_new SELECT * FROM pre_answers_caiji9 WHERE id BETWEEN 1 AND 1000000;
INSERT INTO pre_answers_caiji9_new SELECT * FROM pre_answers_caiji9 WHERE id BETWEEN 1000001 AND 2000000;
-- 继续插入剩余的数据, 一次1百万行太久,可降低到10万...
-- 重命名表
RENAME TABLE pre_answers_caiji9 TO pre_answers_caiji9_old, pre_answers_caiji9_new TO pre_answers_caiji9;
--删除旧表
DROP TABLE pre_answers_caiji9_old;