mysql大数据库的备份方法

一是mysqldump,二是xtrabackup备份工具。

mysqldump

mysqldump是一款mysql逻辑备份的工具,它将数据库里面的对象(表)导出作为SQL脚本文件。它是mysql备份常用的备份方法,适合于不同版本mysql之间的升级、迁移等,不过在数据库比较大的时候,效率不高。

mysqldump命令的常见用法:

# 备份单个的数据库,如备份db1这个数据库
mysqldump -uroot -p123456 db1 > /backup/db1_`date +%F`.sql

# 备份所有数据库,-A参数
mysqldump -uroot -p123456 -A > /backup/all_db.sql

# 备份远程主机的数据库,-h指定IP地址,-P(大写P)指定端口
mysqldump -uroot -p123456 -h192.168.30.4 -P3306 db1 > /backup/db1.sql

# 只备份表结构,不备份数据,使用-d参数
mysqldump -uroot -p123456 -d db1 > /backup/db1.sql

# 只备份数据,不备份表结构,使用-t参数
mysqldump -uroot -p123456 -t db1 > /backup/db1.sql 

# 备份指定的多个库,-B参数
mysqldump -uroot -p123456 -B db1 db2 db3 > /backup/db123.sql

# 备份指定的表,如备份db1库里面的stu表
mysqldump -uroot -p123456 db1 stu > /backup/db1_stu.sql

# 备份多个表
mysqldump -uroot -p123456 库1 表1 表2 表3... > db_tables.sql

# 恢复数据
mysqldump -uroot -p123456 dbname < xxx.sql
#或者
mysqldump -uroot -p123456 < xxx.sql
继续阅读

WordPress终极优化,效果明显

有一个网站,文章即将突破100万+,前端、后台都极其卡顿,尤其是在搜素文章的时候,CPU陡升。网上找了一些优化教程,最后实验下来,最有效的终极方案是Opcache+Memcached+WP Rocket组合,加上用Relevanssi Search建立搜素索引。

如果是宝塔,直接在后台安装Opcache和Memcached即可,简单。以下以军哥的lnmp为例。

Memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

安装
进入lnmp解压后的目录,执行:./memcached.sh
回车确认后就会自动安装memcache php扩展和memcached。

开启Memcached后需要将PHP Memcached 扩展object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/。

可以参看这篇文章:https://blog.wpjam.com/article/wordpress-memcached/

Opcache

opcache是php代码层缓存,memcached是数据层缓存。

此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。

安装
进入lnmp解压后的目录,执行:./opcache.sh
回车确认后就会自动安装opcache。

最后是安装WP Rocket,网上有相关的破解版。

Relevanssi Search

2022.5.15 update:文章量级超过百万了,Relevanssi Search也不能满足了,直接上Elasticsearch解决wordpress搜索难题。

直接在wordpress后台搜素Relevanssi Search插件并且启用设置。

这个组合,对于文章量级比较大的wordpress站点,优化效果非常明显。

关于宝塔面板安装Opcache+Memcached

宝塔会经常容易漏掉Memcached的PHP扩展。有人说要先安装Memcached的PHP扩展,再安装Memcached,否则不起作用,我没有验证过。正确保险的安装顺序是:

  1. 宝塔软件商店中,找到已经安装的PHP7.4 – – – 安装扩展,安装Opcache和Memcached
  2. 软件商店中安装Memcached
  3. 将object-cache.php 文件复制到 wp-content 目录下,注意不是 wp-content/plugins/

另外,如果同台服务器有多个wordpress站点,应该怎么同时使用 Memcached?参考:https://m.wpjam.com/m/memcached-for-sites-in-same-host/

参考:https://www.dazhuanlan.com/2020/01/17/5e213a18be00e/

WordPress其他优化技巧:https://tlanyan.pp.ua/wordpress-performance-optimization/

Cloudflare自选IP后网站出现404 URL not found

今天给一个面向国内的网站套上cloudflare自选IP后,出现了404 URL not found的错误提示,改回源IP,错误消失网站正常。看来是cloudflare ip的问题。

修改为cloudflare百度合作IP后,问题解决。看来是cloudflare封了免费用户的部分自选IP。

附上已经被cloudflare封杀的自选IP:

电信:推荐走圣何塞,例:104.16.160.* 或者上面的百度云合作 ip。
移动:推荐走移动香港,例:172.64.32.*、141.101.115.* 或者 104.23.240.0-104.23.243.254。
联通:没发布什么好线路,可走圣何塞。例:104.16.160.* 或者 104.23.240.0-104.23.243.254。也可以试一下走亚特兰大 108.162.236.*(日前不可用。) 。

收集自网络,以上IP,大部分已经被封。

以下百度合作IP目前在正常:

162.159.208.4-162.159.208.103

162.159.209.4-162.159.209.103

162.159.210.4-162.159.210.103

162.159.211.4-162.159.211.103

另外可以试试这个用API自动检测切换cloudflare IP的程序,不过接口需要购买,也便宜。

hostmonit.com/manually-select-ip/

最后,附上可以使用的cloudflare partner cdn:

萌精灵:https://cdn.moeelf.com/ (Key已被封,无法使用)

挖站否:cdn.wzfou.com

笨牛网:https://cdn.bnxb.com/

英文网站流量统计除了Google Analytics还有哪些选择

国内网站统计,大家很熟悉的有百度统计、cnzz(被友盟收购)、51la和腾讯分析。但是英文网站,除了大家熟悉的Google Analytics,还有哪些选择呢?

Google Analytics功能很强大,配合Tag manager,很多有意思的用法。但是如果“很多网站”,避免关联,就不太适合用Google Analytics了(你懂的)。

统计了,目前常用的英文网站流量统计追踪工具,除了Google Analytics,还主要有以下几种。

  1. Yandex Metrica
    俄罗斯搜索引擎Yandex的统计工具,最关键的是Yandex Metrica能够统计到Google搜索关键词。
  2. StatCounter
    StatCounter 统计是一较大的国外免费在线流量统计服务商,搜索功能可以监控不同的搜索引擎,浏览器和操作系统的市场份额。StatCounter全球数据统计工具的重 心不同于Compete, Alexa, Google Trends,或 Quantcast等所提供的服务,因为它不是通过专门的网站来分流(break out)数据,而只关注这些高层次的统计资料。最大的亮点在于StatCounter的数据可追溯到去年年中的时候,并允许以大陆和国家为类别将数据重新 排序。这对于网站的分析、比较、找出用户的搜索习惯作出较好的判断依据。
  3. Histats
    简单强大统计图表样式可供选择,提供多种方式的统计显示图,包括当日统计、最后30天统计和总统计等,统计数据 也涵盖页面浏览量、点击量、反向链接。
  4. W3counter
    W3counter是一个强大免费的网站统计和分析利器,提供了一常见的统计分析功能:包括网站总访问数和页面访问数、 Feed 状态分析、访问者地区,访问者用的系统、浏览器、屏幕分辨率。可以替代Google analytics 的界面太复杂了。
  5. Clicky
    Clicky是实时统计系统中比较出名的一个,当你在查看统计数据的时候,后台会每分钟刷新一次。
  6. Matomo(原Piwik)
    大部分网站需要用到统计肯定会直接使用大众化免费开源的第三方网站统计工具,也没有必要自建统计工具。但是,如果我们考虑到网站用户信息和访客信息需要自己控制,不至于被泄露给第三方大数据中,还是需要搭建自己的统计工具的。在以前我们可能有听说过piwik工具,如今已经更名为Matomo。
  7. Umami
    也是自建的统计工具,功能上没有Matomo强大,比较简洁。

WordPress自动使用post id作为文章别名(slug)

代码如下,添加到主题的function.php文件中,注意,添加后文章原来的url结构及别名不会更改,新添加文章将自动使用post id作为别名。

/**
 * 新文章自动使用ID作为别名
 * 作用:即使你设置固定连接结构为 %postname% ,仍旧自动生成 ID 结构的链接
 */
add_action( 'save_post', 'using_id_as_slug', 10, 2 );
function using_id_as_slug($post_id, $post){
	global $post_type;
	if($post_type=='post'){ //只对文章生效
		// 如果是文章的版本,不生效
		if (wp_is_post_revision($post_id))
			return false;
		// 取消挂载该函数,防止无限循环
		remove_action('save_post', 'using_id_as_slug' );
		// 使用文章ID作为文章的别名
		wp_update_post(array('ID' => $post_id, 'post_name' => $post_id ));
		// 重新挂载该函数
		add_action('save_post', 'using_id_as_slug' );
	}
}

火车采集器采集PDF并且去重方法

update: 新版火车采集,如果把文件(包括pdf,图片等)当作URL网址来采集的话,在内容采集规则中的文件下载中,勾选 探测文件并下载,貌似也能解决上述问题!

最近在使用火车采集器的时候,遇到一个类似的问题,Google搜索到csdn上的一篇文章。

以下为引用,原文链接见文末。

遇到的案例是这样的,在http://www.xxx.com/index.html 上有多个pdf的下载连接,不定时会有新的pdf增加(下载链接有变化),现在需要监控网页变化,并下载新增加的文件。

直接使用火车采集器没法完美(至少我还没试出来)完成任务。

1,使用缺省设置,起始网址是 http://www.xxx.com/index.html ,使用“自动获取地址链接”,可以得到pdf文件的链接地址。在第2步“内容采集”的步骤中,会将pdf文件当为常规的html网页进行读取,但无法下载文件。

2,将起始网址作为内容页网址,也就是多级列表为空。这种情况下可以下载文件,但带来一个问题,下载一次后,由于起始网址是固定的,以后再运行这个任务,会被当作重复网址而忽略。如果在第4步“4、其他设置”的“发布相关”中,开启“清空该任务网址库”,可以多次运行本任务了,但同时带来一个更麻烦的问题,已更新的文件也被反复下载,火车采集器中并没有记录下载文件链接地址作为去重的依据。如果下载文件的命名规则使用[原文件名],重复下载的会被覆盖,不考虑流量、时间的情况下,第二种方法已勉强可接受。但下载文件会存在同名的情况(/1/abc.pdf 和 /2/abc.pdf),所以本案例中不适用。

现在想到的解决方案如下,使用手动设置规则获取链接地址,配合http请求、响应修改插件进行处理。

继续阅读

让WordPress支持svg图片的两种简单方法

svg格式的图片,wordpress默认是不支持的,当然你可以用插件来让它支持,但是还有更加简单的方法。

方法一

更改wp_include/functions.php文件, 找到wp_get_mime_types()函数,在// Image formats.注析后面图像格式最后一行加入svg对应的格式: ‘svg’ => ‘image/svg+xml’, 最后看起来代码是这样的:

     // Image formats.
        'jpg|jpeg|jpe' => 'image/jpeg',
        'gif' => 'image/gif',
        'png' => 'image/png',
        'bmp' => 'image/bmp',
        'tiff|tif' => 'image/tiff',
        'ico' => 'image/x-icon',
        'svg' => 'image/svg+xml',
        // Video formats.
方法二

更改所使用主题文件夹下面的functions.php文件。把下面的代码加入其中:

function my_upload_mimes($mimes = array()) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
 
add_filter('upload_mimes', 'my_upload_mimes');

需要注意的是,这种方法,如果你更换主题后,还需要重新修改主题的function文件。

BT宝塔面板关闭强制绑定手机注册

2021.6.9 update:

新版宝塔7.6.0升级后,测试方法二可行,不过需要多执行一行代码,如下:
rm -rf /www/server/panel/data/bind.pl

方法一

浏览器地址后面添加/files跳转到宝塔文件管理页面,比如你的宝塔地址是1.2.3.4:8888,改成1.2.3.4:8888/files访问;然后定位到以下目录

/www/server/panel/BTPanel/static/js
找到index.js文件,编辑,然后找到大概65行左右以下代码

if (bind_user == ‘True’) {
show_force_bind();
}
将True改成其他比如REMOVED,最后保存,然后强制刷新下页面,就不会提示绑定手机了~

方法二

SSH命令一键修改,实现原理跟方法1相同

sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js

如果要恢复,执行以下命令:

继续阅读

手机卡V2ray免流教程

最近看到有人讨论免流 刚好前几天搞了台300M带宽的国内服务器 现在闲置了 于是便装了v2试试免流

现在免流已经不是15年那会儿了 以前倒是可以随便免 现在的免流线路都死完了 现在只能靠定向流量通过伪装实现免流了 如果你套餐有定向流量那可以按照本文说的来试一试

本人测试套餐为电信星卡 月租19块钱每个月200G定向流量 用来跑免流很合适 这张卡是我去年用来玩免流的 出于无聊 刚好手里有闲置的服务器 就又搞了试试 没想到用去年的混淆居然还能免流 我用的是优酷的混淆 测试用了两个多G流量 通用流量一点没少 全部跑的定向流量 可以说是0跳。

继续阅读