wordpress动静分离-使用CDN

动静分离的好处就是 你的前端服务器不用承担大量的带宽和许多的静态请求,降低服务器负载

可以让网站访问变得更迅速 起飞!

下面就是实现的代码:

 /* 动静分离+静态缓存 Static Cache */
ob_start("Static_Switch");
function Static_Switch($buffer){
        if(!is_admin()){
                $buffer_out = preg_replace('/https:\/\/www\.xjh\.me\/wp-([^"\']*?)\.(jpg|png|gif|css|js|woff|woff2|ttf|svg|eot)/i','https://static.xjh.me/wp-$1.$2',$buffer);
                return $buffer_out;
        }
        else return $buffer;
} 

其中你需要将 www.xjh.me 替换成你的网站域名

static.xjh.me 替换成你的静态文件域名

本文转自: 岁月小筑

数据库常见管理命令

mysql数据库常见管理:

1.创建数据库

create database 数据库名;  <----库名不能以数字开头

查看建库语句

show create database 数据里名\G;     <----- 没有 ;

创建数据库并定义字符集和校对规则

create database 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

字符集是:一套编码或者一套规则

校对规则:比较字符编码的方式

如果编译安装mysql的时候指定了字符集,则以后创建数据库会默认指定的字符集。

企业里怎么创建数据库:

1.根据开发的程序所使用的字符集

2.知道了所用的字符集后编译安装可以指定字符集,或者在安装好的mysql里

配置my.cnf指定字符集,这样以后创建数据库不需要定义

查看指定数据库

show database like '数据库名';          <----数据库名可以跟%  表示任意的意思 

显示当前所使用的数据库

select database();

如何删除数据库

drop database 数据库名;        

查看所以用户以及用户分配的host

select user,host from mysql.user;

如何创建用户:

create user '用户名'@'连接域';

创建用户并赋予密码:

create user '用户名'@'连接域' IDENTIFIED BY '密码;

如何删除用户

drop user '用户名'@'连接域';    <----连接域名指的是127.0.0.1或者localhost以及远程IP

无法删除用户的解决办法以及为什么

无法删除的原因是:保留用户名、特殊字符用户名,大写用户名

delete from mysql.user where user='root' and host='localhost';
flush privileges;

 给用户授权数据库所有权限

grant all on dbname.tables to 'user'@'localhost';     <---- dbname和tables可以使用通配符来进行匹配 比如 *.*

创建用户并赋予密码和数据库所有权限

grant all on dbname.tables to 'user'@'localhost' IDENTIFIED BY 'passwd';

刷新权限

flush privileges;

查看用户的数据库权限

show grants for 'test'@'localhost';     <----- 是grants 

查看用户的权限有哪些?

使用REVOKE

revoke insert on test.* to 'test'@'localhost';  <----使用revoke插入 可使用的权限

不登录数据库进行操作

mysql -uroot -p -e "执行的命令;"   <----使用-e 参数 传入命令 引号结尾需要带;

mysql 备份数据库的方式以及使用工具

说明:-uroot 是代表用户名为root

说明2:-pxxx 是代表密码为xxx


备份用的软件

1.mysqldump  <—–数据库自带备份工具

mysqldump基本使用命令

mysqldump -uroot -pxxx 数据库名 > mysql_back.sql    <------备份文件的路径以及名字最好带sql后缀

mysqldump就是将数据以sql语句导出 进行备份  恢复的时候重新执行sql语句进行导入

指定字符集导出数据

附带参数 –default-character-set=utf8

mysqldump -uroot -pxxx --default-character-set=utf8

恢复数据库数据

mysql -uroot -pxxx 数据库名 < /root/mysql_back.sql   

备份数据库以及备份库名和创建库所使用的命令

mysqldump -uroot -pxxx -B 数据库名 > /root/mysql_back_B.sql            <-----------参数 -B 的作用就是将创建数据库时候的操作进行备份 并使用use切换到目标库    所以带上-B不需要提前创建数据库

建议一般备份的时候加上-B  如果你只需要数据可以自行编辑sql文件删除不需要的2步操作

-Bmysqldump恢复方法

mysql -uroot -pxxx < /root/mysql_back_B.sql     <--------注意这里不需要加数据库名,它会自动创建数据库

mysqldump减少输出选项 -compact 

作用:

减少数据    适用于debug 调试模式来查看数据  减少不必要的输出

不适合于备份还原回去

mysqldump备份的原理

实际上就是将数据从mysql库里 以逻辑形式使用sql语句进行导出

mysqldump备份单个或多个表

mysqldump -uroot -pxxx 库名 表名 表名 > /root/mysql_back_tables.sql   <------如果不加-B 默认识别 库名 表名 表名 …      默认库名后面全部识别为表名    如果加了-B 那就是库名 库名

mysqldumo 只备份表结构 不备份表值

使用-d参数

mysqldump -uroot -pxxx -d 库名 > mysql_back_d.sql       <-----默认只有库名的话 则备份所有表结构
mysqldump -uroot -pxxx -d 库名 表名 > mysql_back_d.sql   <-----备份多个指定表的结构

mysqldump 只备份表数据 不备份表结构

使用-t参数

mysqldump -uroot -pxxx. -t 库名 > mysql_back_t.sql 

以上都是myisam引擎的备份

innodb数据库备份

使用参数single-transaction

原理 设定本次会话级别为 REPEATABLE READ 来保持数据一致性

在进行备份的时候可以进行访问和写入数据,但是备份的数据是本次会话的数据,备份过程中的写入数据不进行备份

完整备份mysql所有数据:

mysqldump备份数据库里的所有数据,保护mysql的用户以及其他

mysqldump -uroot -pxxx -A -B --events > /root/mysql_back_all.sql 

使用-F选项  刷新binlog数据

不这么做 完整备份 恢复的时候会报错

mysqldump -uroot -pxxx -A -B -F --events > /root/mysql_back_all.sql

使用–master-data=1 自动找到全库恢复开始的binlog初始位置

mysqldump -uroot -pxxx -A -B -F --events > /root/mysql_back_all.sql

mysqldump关键参数说明:

-B 指定多个库,增加建库语句和use语句

–compact  去掉注释 适合调试输出 生产不用

-A 备份所有库

-F 刷新binlog日志

如果不刷新binlog可以用以下参数

–master-data=1

-x或者–lock-all-tables 锁表  全局读锁,保持数据一致性,建议只用这个

-l或者–lock-tables READ LOCAL锁定表以允许MyISAM表并行插入

-d 只备份表结构

-t 只备份表值

single-transaction 适合innodb事物数据库备份

生产过程中使用的命令总结:

myisam

可以使用-x完全锁表或者有读取访问需求的使用-l只读锁表来进行备份   每次都必须带这2个参数之1

1.单个库备份:

mysqldump -uroot -pxxx -x 库名 > /root/mysql_back.sql

2.多个库备份:

mysqldump -uroot -pxxx -x -B 库名 库名> /root/mysql_back_B.sql

3.单库单表或多表:

mysqldump -uroot -pxxx -x 库名 表名 > /root/mysql_back.sql
mysqldump -uroot -pxxx -x 库名 表名 表名 > /root/mysql_back.sql

4.备份数据库所有数据

mysqldump -uroot -pxxx -A -B --master-data=1 -x --events > /root/mysql_back_all.sql

innodb:

innodb备份的好处:热备份,不需要锁表备份,不影响业务访问

mysqldump -uroot -pxxx --single-transaction 库名 >    /root/mysql_back_innodb.sql

其他命令跟myisam基本一样

innodb备份数据库所有数据

mysqldump -uroot -pxxx -A -B --master-data=1 --single-transaction --events > /root/mysql_back_all.sql

专职DBA所使用的备份命令:

myisam:

mysqldump -uroot -pxxx --all-database --flush-privileges --lock-all-tables \
--master-data=1 --flush-logs --triggers --routines --events \
--hex-blob > $BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql 

innodb:

mysqldump -uroot -pxxx --all-database --flush-privileges --single-transaction \
--master-data=1 --flush-logs --triggers --routines --events \
--hex-blob > $BACKUP_DIR/full_dump_$BACKUP_TIMESTAMP.sql 

备份工具2:xtrabackup

xtrabackup 对于MyISAM只支持温备,不支持增量备份;支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同数据库之间迁移,支持复制模式下的从机备份恢复备份恢复,为了让xtrabackup支持更多的功能扩展,可以设立独立表空间,打开 innodb_file_per_table功能,启用之后可以支持单独的表备份。xtrabackup可以实现完全备份,增量备份,以及部分备份,其支持在线热备与恢复,在大数据量的时候,备份恢复都比较快。

xtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-recovery,使得数据恢复一致。

asus原厂固件开启jffs教程

本文转自github:https://github.com/gygy/asus_factory_image

首先开启ssh或者开启telnet

然后进入

开启JFFS2,在SSH下面输入下面命令

nvram set jffs2_on=1
nvram set jffs2_enable=1
nvram set jffs2_format=1
nvram set jffs2_scripts=1
nvram commit

然后重启

reboot

验证是否启用了JFFS2

登陆ssh 输入以下命令

 nvram show | grep "jffs" 

正常情况下,显示下面结果即启用了JFFS2。注意重启后,format的值会等于 0

jffs2_on=1
size: 47811 bytes (17725 left)
jffs2_exec=
jffs2_enable=1
jffs2_format=0
jffs2_scripts=1