今天在处理一个 MySQL 数据转移到 MariaDB 上,mysqldump 导出数据有10多G,在导入数据时提示: 错误1193(HY000):未知系统变量’GTID_PURGED’ 这个问题处理也简单,就是 MariaDB 中没有 GTID_PURGED 变量,在导出的 sql 文件中把: SET @@GLOBAL.GTID_PURGED='xxx' 一句注释掉就行了,但问题是文件有10多个G,直接打开编辑就等着服务器死机吧~ 先用 less 命令找到行号吧: less -N dump.s…

2023年02月15日 0条评论 2108点热度 0人点赞 路灯 阅读全文

Redis 6实现了通道加密,提高了redis的安全性。Redis作为缓存数据库,里面很有可能缓存重要的敏感信息,所以支持tls通道加密还是很有必要的,当然敏感信息还是建议加密保存。 唯一不好的是PHP的phpredis扩展还有跟上,没找到办法链接有tls的redis服务器。 创建证书: mkdir -p redis-tls cd redis-tls openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -sha256 -key \ ca.key…

2023年02月11日 0条评论 2210点热度 0人点赞 路灯 阅读全文

最近接到个比较奇特的需求,要用PHP来识别用户上传图片中的,提出出订单号、订单时间和金额。 分析了下,最主要的就是中文和数字识别,识别出来后再用正则按规则提取出内容。 直接用PHP来开发OCR识别是不现实的,没人有哪个闲工夫,利用现成的工具不香吗? 分析了几种工具: 1. 用现存的工具,比如百度阿里都有,但要钱! 2. 用OpenCV,这个倒不要钱了,但开发太复杂了! 3. 用 tesseract-ocr 来进行识别。 相对来说 tesseract-ocr 相对来说这个简单多了,这里把使用过程记录下。 1. 安装 …

2023年02月11日 0条评论 2535点热度 1人点赞 路灯 阅读全文

1. shell 介绍 Shell是Linux/Unix的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。 Linux/Unix提供了很多种Shell,为毛要这么多Shell?难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的Shell,就会自己重…

2023年02月10日 0条评论 2295点热度 0人点赞 路灯 阅读全文

连接服务器后,使用info命令查看Redis信息和状态: info 其中memory段显示了redis的内存使用状态。 INFO [section] 以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server 部分记录了 Redis 服务器的信息,它包含以下域: redis_version : Redis 服务器版本 redis_git_sha1 : Git SHA1 redis_git_di…

2023年02月06日 0条评论 2076点热度 0人点赞 路灯 阅读全文

在PHP服务器和数据库服务器中使用PDO连接的话是明文传输的,如果在网络监听的话会有数据泄漏的风险。 在正式生产环境应当使用自签名SSL证书连接。 MariaDB数据库服务器配置见:《MariaDB MySQL 使用自签名SSL连接》 记录下PHP的PDO连接: <?php try { $options = array( PDO::MYSQL_ATTR_SSL_KEY => '/data/www/test/certs/client-key.pem', PDO::MYSQL_ATTR_…

2023年02月06日 0条评论 2038点热度 0人点赞 路灯 阅读全文

1. 数据库版本 MariaDB [(none)]> select version(); +--------------------+ | version() | +--------------------+ | 10.8.6-MariaDB-log | +--------------------+ 1 row in set (0.000 sec) 2. 配置文件 # 在[mysqld]下添加 log-bin = /data/mariadb-binlog/mariadb-log # binlog日志路径,格式…

2023年02月05日 0条评论 2377点热度 0人点赞 路灯 阅读全文

加密是一个永恒的话题,一般的做法是在程序中做好加密再存入数据库中,实际上数据库本身就带有了强大的加密功能,在开发时可以将加密减密部分丢给数据库处理,以减轻程序负担。 1. 加密减密函数 1.1 不可逆哈希函数 MD5()、SHA1()、SHA2() MariaDB [(none)]> select MD5('1234'), SHA1('1234'); +----------------------------------+------------------------…

2023年02月05日 0条评论 2236点热度 0人点赞 路灯 阅读全文

MariaDB在10.1.3版本中加入了支持表加密和表空间加密的特性,在10.1.7版本加入了支持binlog加密的特性,这使得我们可以对数据文件和binlog进行加密,避免数据文件、binlog等文件被窃取后破解出关键数据。 一. MariaDB的加密特性 1. innodb表空间加密 2. innodb日志加密 3. binlog加密 4. aria表加密 5. 临时文件加密 加密特性的一些限制: 1. 元数据文件(.frm)目前尚未加密; 2. 目前只有MariaDB server才能解密,mysqlbinl…

2023年02月05日 0条评论 2075点热度 0人点赞 路灯 阅读全文

1. 字符串函数 完整的内置字符串函数见《官方手册》。 1.1 字符串连接函数 有两个字符串连接函数:concat(s1,s2,s3,...,sN)和concat_ws(sep,s1,s2,s3,...,sN)。 concat()将多个字符串连接起来形成一个长字符串。它会尝试将字符全部转换为字符型,如果存在null,则直接返回null。 MariaDB [(none)]> select concat('a','b',1),concat(1,2,3),concat(�…

2023年02月04日 0条评论 2272点热度 0人点赞 路灯 阅读全文
12