技术饭 redis队列详解

现如今的互联网应用大都是采用分布式系统架构设计的,所以消息队列已经逐渐成为企业应用系统内部通信的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。当前使用较多的消息队列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分数据库 如 Redis、MySQL 以及 phxsql ,如果硬搞的话,其实也可实现消息队列的功能。可能有人觉得,各种开源的 MQ 已经足够使用了,为什么需要用 Redis 实现 MQ 呢?有些简单的业务场景,可能不需要重量级的 MQ 组件(相比 Redis 来说,Kafka 和 RabbitMQ 都算是重量级的消息队列)。

阅读全文 » 362天前
2023年05月01日

技术饭 mysql 将一个表的一个字段更新到另一个表中的一个字段

mysql 将一个表的一个字段更新到另一个表中的一个字段,有两个表brand_fundlist_log和 brand_fundlist_log_temp,现在要将brand_fundlist_log_temp的update_create_time值更新到brand_fundlist_log的create_time 字段上面去。

阅读全文 » 661天前
2022年07月07日

技术饭 INSERT INTO SELECT FROM,从某个表复制到另外一个表语句的使用方法

INSERT INTO SELECT FROM,从某个表复制到另外一个表语句的使用方法,数据脚本迁移原本看起来比较麻烦,问了下大佬,大佬随便在我屏幕上打上:insert into from,说用这个就好了,然后再加上小度就找到解决方法了,感谢大佬,每天教会小弟一点知识。

阅读全文 » 705天前
2022年05月24日

技术饭 mysql替换字段值为另外一个表的字段值

mysql替换字段值为另外一个表的字段值,需求是:替换充值订单中的时间为另外一张表的时间字段,这时候正常使用 INNER JOIN 查询的方式查出来数据之后再进行update更新。

阅读全文 » 751天前
2022年04月07日

技术饭 mysql替换(replace)字符串字段的某些字符串、正则替换

mysql替换(replace)字符串字段的某些字符串、正则替换,由于图片字段上传到腾讯云cos之后,缩略图带了裁剪参数,存入数据库之后,参数也被存在了数据库中,导致图片的显示不全,现在需要把图片处理参数删除,也就是图片url问号后面的参数一并删除;刚开始想法是直接用mysql里面的regexp_replace函数对敏感字段进行处理。后来发现mysql8.0才支持regexp_replace()。mysql5.7里只有正则匹配的函数。最后还是用mysql本身提供的函数进行处理。

阅读全文 » 786天前
2022年03月03日

技术饭 mysql根据关联表查询统计字段进行排序

mysql根据关联表查询统计字段进行排序,需求是查询所有的主账号数据,然后根据子账号的数量进行按高到低排序,第一想法就是需要做order by那么就需要把统计子账号的结果作为一个字段,那这时候就可以使用子查询来实现了。

阅读全文 » 912天前
2021年10月29日

技术饭 centos8 安装 mysql5.7(更新数据库)

centos8 安装 mysql5.7(更新数据库),centos8下默认的yum源是mysql8,如果想用mysql5.7那该如何安装呢?其实也蛮简单的,mysql官方也给出了操作方法,直接安装步骤执行就可以了,但是有一点需要注意的是:过程中可能会报Mariadb错误,原因是因为yum自动默认了Mariadb,这需要先禁用卸载Mariadb之后才能继续安装mysql5.7版本。

阅读全文 » 994天前
2021年08月08日

技术饭 更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题

更改MySQL数据库的编码为utf8mb4,还是无法解决表情符号不能保存的问题,这几天在做公众号授权,每次写入用户昵称数据的时候一直报错,我就奇怪了,明明数据库、字符集都改成了utf8mb4,为什么还是写入不了数据呢,查看了测试机(mysql5.7.24)的my.cnf 文件没有配置设置编码却没有问题,而正式机(mysql5.7.32)做了字符集编码的配置却出现了异常,真实奇葩~~~

阅读全文 » 1218天前
2020年12月26日

技术饭 Centos8 mysql5.6升级至5.7

Centos8 mysql5.6升级至5.7,说实话mysql的升级安装是最头疼的事情,升级过程中要是一不小心出了错,那就是mysql服务器启动不了,而且启动不了的报错还无法知道是哪里错了,真的很麻烦~~~

阅读全文 » 1223天前
2020年12月22日

技术饭 mysql中json_contains、json_extract等json查询方法的使用

mysql中json_contains、json_extract等json查询方法的使用,新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作。JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本。 MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析。

阅读全文 » 1227天前
2020年12月17日

技术饭 mysql查询语句group by 后面 order by 失效

原始需求是要查询出通过手机号最新报名的数据并且需要对手机号进行分组,但是在查询过程中发现mysql查询语句group by 后面 order by 失效,无论怎么查询都是未查到需要的数据,单独查询数据排序没有问题,但是加入 GROUP BY 之后就不行了,后来的解决方案是:使用子查询的方式先查出排序好的数据,然后再将数据进行分组排序。

阅读全文 » 1227天前
2020年12月17日

技术饭 PHP查询用户排名名次、Mysql查询用户排名名次的方法

PHP查询用户排名名次、Mysql查询用户排名名次的方法,最近做了用户排行榜,那么就整理了查询用户排行的一些代码,主要分为两部分:PHP、Mysql两者独立查询用户排名信息,当然查询的是所有用户的排名以及当前用户的排名信息。

阅读全文 » 1239天前
2020年12月05日

技术饭 Group by 查询时的ONLY_FULL_GROUP_BY错误解决方案

mysql使用group_by的时候报错:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'cis.q1.query_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by。

阅读全文 » 1262天前
2020年11月13日

技术饭 mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0

mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0,今天在将开发库(mysql版本号:5.7.24)的表结构和正式库(mysql版本号:8.0.19)表结构做比对的时候,发现大量表中字段不一致,初以为是切换到正式库时执行SQL报错了,后,手工修改表字段长度还是不行。

阅读全文 » 1263天前
2020年11月11日

技术饭 centos8重新安装MySQL,从高版本降到低版本后疯狂报错

centos8重新安装MySQL,从高版本降到低版本后疯狂报错。原来服务器centos8是默认yum install mysql的,mysql的版本是8.0.21,但是原始项目的数据库过度过去之后,数据库报错了,说是8.0.17版本之后int、tinyint类的字段长度被废弃不再显示了:mysql8.0 tinyint字段长度修改时无效,所以就想把mysql版本降到5.7.32版本,本来是先yum remove mysql,因为没有删除遗留的mysql文件、目录导致了安装5.7.32版本一直报错。

阅读全文 » 1263天前
2020年11月11日

技术饭 CentOS8 Nginx+PHP7.2+mysql8+redis+git的配置以及注意事项

CentOS8 Nginx+PHP7.2+mysql8的配置以及注意事项,CentOS8的配置相对Contos7比较简单。在以下讲解中会详细讲解到两个系统nginx、php、mysql8的安装和配置。目前nginx1.14、php7.2、mysql8都已经加入centos8官方源,使用和配置都简单很多。

阅读全文 » 1264天前
2020年11月11日

技术饭 MySQL 批量修改数据表编码及字符集

经常使用SQLyog导出导入数据库时,不懂为什么经常性出现编码错误字符集被设置成了默认,奇怪的很,可能是软件版本问题,当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改。以下备注批量修改方案( 以修改为 utf8mb4_general_ci为例,注意将 db_name 换为真实的数据库名 )。

阅读全文 » 1264天前
2020年11月10日

技术饭 MySQL崩溃与致命错误:无法为缓冲池分配内存

我们有几个网站在运行,拥有1GB的实例。服务器运完美无暇运行5个月,然后MySQL开始崩溃,每隔几天,mysql错误日志中出现以下错误。

阅读全文 » 1655天前
2019年10月16日

技术饭 MySQL的InnoDB引擎数据库经常出现自动关闭现象,Cannot allocate memory for the buffer pool

MySQL的InnoDB引擎数据库经常出现自动关闭现象,Cannot allocate memory for the buffer pool,最近网站经常时不时地出现访问不了的状况,一直没在意,今天又一down机了,索性就查看了下MySQL的日志。

阅读全文 » 1655天前
2019年10月16日

技术饭 Navicat连接Mysql报错:Client does not support authentication protocol requested by server;

上篇刚写了安装Mysql,想用Navicat去连接,然后就报错了,此处记录报错解决。Navicat连接MySQL Server8.0版本时出现Client does not support authentication protocol requested by server;解决如下:

阅读全文 » 1708天前
2019年08月24日

技术饭 Mysql如何查询连续的时间次数

Mysql如何查询连续的时间次数,在网上看到一道有意思的题目,大意是如何在mysql查询连续在线的天数。所谓的连续在线是指相邻两天都登录过,不一定一直在线,但是只要有过登录即可。如,1月1日登录了一会下线了,一月2日登录了一会下线了,那么,就算1月1日和2日是连续在线,天数为2。如果1月3日,没有登录过,1月4日登录了,此时,1月4日与1月1日、2日不算连续在线了。设连续在线天数为days,则1月1日在线,days=1;1月2日在线,days=2;1月3日不在线,1月4日在线,days=1;1月5日在线,days=2;

阅读全文 » 1888天前
2019年02月26日

技术饭 MySql中InnoDb引擎,show table status 数据不准确

MySql中InnoDb引擎,show table status 数据不准确,与你使用的表引擎有关系。官方文档的说明:一些存储引擎(如myisam)存储精确的计数。对于其他存储引擎(如InnoDB),该值是近似值,可能与实际值相差40%到50%。在这种情况下,使用select count(*)获得准确的计数。在myisam这种不支持事务的引擎中,这个值是精确的,在innodb这种支持事务的引擎中,是估算的。

阅读全文 » 1922天前
2019年01月22日

技术饭 mysql存储表情:General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column

今天向数据库插入一条数据时,有条数据的某个字段包含\xF0\x9F\x98\x8A字符,导致MYSQL数据库出现以下错误:General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column ...

阅读全文 » 1946天前
2018年12月29日

技术饭 Linux下如何实现Mysql数据库每天自动备份定时备份

备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!

阅读全文 » 2002天前
2018年11月03日

技术饭 PHP面试的知识点

PHP面试之一:PHP基础知识点,PHP面试之二:高并发与大数据,PHP面试之三:MySQL数据库,PHP面试之三:MySQL数据库

阅读全文 » 2026天前
2018年10月10日

技术饭 Mysql-Proxy代理配置

Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测、分析和改变他们的通信。它使用灵活没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。

阅读全文 » 2031天前
2018年10月06日

技术饭 MySQL 8.0主从(Master-Slave)配置

MySQL 主从复制的方式有多种,本文主要演示基于基于日志(binlog)的主从复制方式。MySQL 主从复制(也称 A/B 复制) 的原理:Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件, 这些记录叫做二进制日志事件(binary log events);Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。

阅读全文 » 2031天前
2018年10月05日

技术饭 MySQL创建自定义函数(Functions)

MySQL创建自定义函数(Functions),查看函数功能是否开启:show variables like '%func%';开启:SET GLOBAL log_bin_trust_function_creators=1;关闭:SET GLOBAL log_bin_trust_function_creators=0;

阅读全文 » 2032天前
2018年10月05日

技术饭 mysql触发器trigger 实例详解

触发器是由事件来触发某个操作,这些事件包括insert语句、update语句和delete语句。当数据库系统执行这些事件时,会激活触发器执行相应操作。MySQL从5.0.2开始支持触发器。使用触发器可以保证某些操作之间的一致性。

阅读全文 » 2032天前
2018年10月05日

技术饭 mysql的event(事件)用法详解

mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。

阅读全文 » 2032天前
2018年10月04日

技术饭 Mysql中的存储过程

简单的说Mysql中的存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用。

阅读全文 » 2032天前
2018年10月04日

技术饭 Mysql常用复杂常用查询语句

Mysql常用复杂常用查询语句,记录一些自己不常用的 SQL 查询语句。

阅读全文 » 2032天前
2018年10月04日

技术饭 mysql数据库分表及实现

项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多。以至于查询书读变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈。当出现这种情况时,我们可以考虑分表,即将单个数据库表进行拆分,拆分成多个数据表,然后用户访问的时候,根据一定的算法,让用户访问不同的表,这样数据分散到多个数据表中,减少了单个数据表的访问压力。提升了数据库访问性能。

阅读全文 » 2032天前
2018年10月04日

技术饭 MySQL主键和外键使用及说明

MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。

阅读全文 » 2033天前
2018年10月03日

技术饭 MySQL8.0修改用户密码语句

MySQL8.0修改用户密码语句,mysql8 与以前版本还是有点区别的,首先登陆mysql,mysql -u root -p '密码',use mysql,ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'

阅读全文 » 2033天前
2018年10月03日

技术饭 MySQL特殊一些函数

MySQL特殊一些函数,EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等,CONCAT_WS() 是CONCAT()的特殊形式,第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间,GROUP_CONCAT([DISTINCT] 要连接的字段,[Order BY ASC/DESC 排序字段] [Separator '分隔符']),REPEAT()函数,用来复制字符串,LOCATE()函数表示某个字符出现的位置。

阅读全文 » 2033天前
2018年10月03日

技术饭 MySql数据统计使用 WITH ROLLUP 统计总和

MySql数据统计使用 WITH ROLLUP 统计总和,ITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数。

阅读全文 » 2033天前
2018年10月03日

技术饭 mysql 替换某个字段中的某个字符

mysql 替换某个字段中的某个字符,需求:修改字段中的 /uploads/2018/ 为 /uploads/2018/09/ ,解决方法:使用sql的 replace() 方法:update 表名 set 字段名 = REPLACE (字段名, '原来的值', '要修改的值');

阅读全文 » 2048天前
2018年09月19日

技术饭 php7+mysql8下出现网页无法访问问题解决方案

php7+mysql8下出现网页无法访问问题解决方案,最近因为剁手买了Centos7,在上面搭建Ningx1.14.0+PHP7.2+Mysql8.0环境。数据库mysql从5.7跳到8,性能快了一倍,lnmp基本都弄好了,但是到用php连接Mysql这一步出了问题,一直无法加载网页,可是使用客户端、shell命令都可以进入mysql,多方查询才找到答案!

阅读全文 » 2051天前
2018年09月15日

技术饭 报错:1130-host ... is not allowed to connect to this MySql server

报错:1130-host ... is not allowed to connect to this MySql server

阅读全文 » 2052天前
2018年09月14日