rsync 带不带尾部斜杠的不同作用

rsync 是很好用的同步软件,使用增量方式同步。不过使用 rsync 时有没有尾部斜杠效果是不同的

使用方法  rsync  src   dest

总结一下规律:

src 目录没有带斜杠:则在  dest 下面有 src 文件夹

src 目录没有带斜杠:则在 dest 目录下面只有 src 目录下面的文件

换言之:如果忽略了源文件斜杠  rsync 将创建源文件目录的最后一个文件夹名字并且包含它的所有文件,如果添加了斜杠 rsync 将跳过那个目录直接复制里面的内容

dest 带不带斜杠没有任何影响。 Continue reading rsync 带不带尾部斜杠的不同作用

MySQL (Navicat) 运行 .sql 文件时报错:[Err] 2006 – MySQL server has gone away 的解决方法

导入一个数据量很大的 .sql 文件时,报错:

SQL 语句过长,超过 MySQL 通信缓存区最大长度。

编辑 MySQL 安装目录下的 my.ini,在最后添加以下内容:

max_allowed_packet=16M

或(2018-03-14 补充)

max_allowed_packet=500M
wait_timeout=288000
interactive_timeout = 288000

max_allowed_packet 是 MySQL 允许最大的数据包,也就是你发送的请求;

wait_timeout 是等待的最长时间,

重启 MySQL 服务

执行 umount 的时提示: device is busy 的处理方法

错误

[root@iZ25xpwwmfnZ ~]# umount /dev/vdb5
umount: /data/wwwroot/www.1001alading.com/Uploads: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

查看

[root@iZ25xpwwmfnZ ~]# fuser -m -v /data/wwwroot/www.1001alading.com/Uploads
                     USER        PID ACCESS COMMAND
/data/wwwroot/www.1001alading.com/Uploads:
                     www        2925 f.... nginx
                     www        2927 F.... nginx
                     root      18365 f.... AliYunDun
                     root      28557 f.... pick.sh

杀进程

[root@iZ25xpwwmfnZ ~]# fuser -m -v -i -k /data/wwwroot/www.1001alading.com/Uploads
                     USER        PID ACCESS COMMAND
/data/wwwroot/www.1001alading.com/Uploads:
                     www        2925 f.... nginx
                     www        2927 F.... nginx
                     www        2928 F.... nginx
                     root      18365 f.... AliYunDun
                     root      28557 f.... pick.sh
Kill process 2925 ? (y/N) y
Kill process 2927 ? (y/N) y
Kill process 2928 ? (y/N) y
Kill process 18365 ? (y/N) y
Kill process 28557 ? (y/N) y

再次卸载

资料转移记录

mkdir /home/Uploads
mkdir /home/temp
mv /home/wwwroot/ald.1001ald/Uploads/* /home/Uploads
umount /dev/vdb1
mount /dev/vdb1 /home/temp
mv -rf /home/Uploads /home/wwwroot/ald.1001ald
mv /home/wwwroot/ald.1001ald/ /home/temp
umount /dev/vdb1
mount /dev/vdb1 /home/wwwroot
vim /etc/rc.d/rc.local
mount /dev/vdb1 /home/wwwroot

PHP 根据某个键值将相同键值合并成为新的二维数组

<?php
    $test = [
        'a' => [
        'mobile' => '13333333333',
        'other' => 'aaaaaaaaaaaa'
        ],
        'b' => [
        'mobile' => '14444444444',
        'other' => 'bbbbbbbbbb'
        ],
        'c' => [
        'mobile' => '14444444444',
        'other' => 'cccccccccc'
        ],
    ];
    
    $result = [];
    foreach ($test as $k => $v) {
        $result[$v['mobile']][] = $v;
    }
    
    echo "<pre>";
    print_r($test);
    echo "</pre>";
    
    echo "<pre>";
    print_r($result);
    echo "</pre>";
?>

返回结果:

Array
(
    [a] => Array
        (
            [mobile] => 13333333333
            [other] => aaaaaaaaaaaa
        )

    [b] => Array
        (
            [mobile] => 14444444444
            [other] => bbbbbbbbbb
        )

    [c] => Array
        (
            [mobile] => 14444444444
            [other] => cccccccccc
        )

)
Array
(
    [13333333333] => Array
        (
            [0] => Array
                (
                    [mobile] => 13333333333
                    [other] => aaaaaaaaaaaa
                )

        )

    [14444444444] => Array
        (
            [0] => Array
                (
                    [mobile] => 14444444444
                    [other] => bbbbbbbbbb
                )

            [1] => Array
                (
                    [mobile] => 14444444444
                    [other] => cccccccccc
                )

        )

)

 

MySQL 中支持 emoji 表情的存储 ThinkPHP

MySQL 的 utf8 编码的一个字符最多 3 个字节,但是一个 emoji 表情为 4 个字节,所以 utf8 不支持存储 emoji 表情。但是 utf8 的超集 utf8mb4 一个字符最多能有 4 字节,所以能支持 emoji 表情的存储。下面介绍了关于如何修改 mysql 数据库的编码格式变为 utf8mb4 的具体方法。

找到 /etc/ 路径下的 my.cnf 文件(或 /etc/mysql/ 路径下),通过 vim 命令 vim /etc/my.cnf 打开该文件并进行编辑,需添加如下所示配置:

[client]
default-character-set=utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4'

[mysql]
default-character-set=utf8mb4

Continue reading MySQL 中支持 emoji 表情的存储 ThinkPHP

thinkphp 3.2 使用 PHPQRCODE 生成二维码 找不到 QRcode 问题

按网上的教程一直出现找不到 QRcode 问题, 按下面的结构和代码写就可以了

public function qrcode($url='https://blog.liuguofeng.com/',$level=3,$size=4){
  Vendor('phpqrcode.phpqrcode');
  $errorCorrectionLevel =intval($level) ;//容错级别
  $matrixPointSize = intval($size);//生成图片大小
  //生成二维码图片
  //echo $_SERVER['REQUEST_URI'];
  $object = new \QRcode();
  $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
}

Continue reading thinkphp 3.2 使用 PHPQRCODE 生成二维码 找不到 QRcode 问题