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

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

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

技术饭 Centos8 mysql5.6升级至5.7

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

阅读全文 » 225天前
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数据类型以及关于这种类型的检索以及其他函数解析。

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

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

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

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

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

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

阅读全文 » 242天前
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。

阅读全文 » 264天前
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报错了,后,手工修改表字段长度还是不行。

阅读全文 » 266天前
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版本一直报错。

阅读全文 » 266天前
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官方源,使用和配置都简单很多。

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

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

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

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

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

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

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

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

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

阅读全文 » 658天前
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;解决如下:

阅读全文 » 711天前
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;

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

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

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

阅读全文 » 925天前
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 ...

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

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

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

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

技术饭 PHP面试的知识点

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

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

技术饭 Mysql-Proxy代理配置

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

阅读全文 » 1034天前
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 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。

阅读全文 » 1034天前
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;

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

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

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

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

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

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

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

技术饭 Mysql中的存储过程

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

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

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

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

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

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

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

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

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

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

阅读全文 » 1036天前
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 '你的新密码'

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

技术饭 MySQL特殊一些函数

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

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

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

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

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

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

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

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

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

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

阅读全文 » 1054天前
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

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

技术饭 Mysql客户端登录问题:mysql Client does not support authentication protocol requested by server; consider upgrading MySQL

Mysql客户端登录问题:mysql Client does not support authentication protocol requested by server; consider upgrading MySQL

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

技术饭 【转】MySQL性能优化的最佳21条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。

阅读全文 » 1196天前
2018年04月26日

技术饭 MySQL基础整理

MySQL基础整理,Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

阅读全文 » 1198天前
2018年04月24日

技术饭 MySQL批量删除指定前缀表

MySQL批量删除指定前缀表,Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE 'hp_%';"hp"为要删除的表前缀,执行此SQL语句后会生成一串SQL语句,必须再执行生成的这些SQL语句才能真正执行删除操作。

阅读全文 » 1238天前
2018年03月15日

技术饭 Mysql查询同一天且满足一定条件下语句

Mysql查询同一天且满足一定条件下语句,mysql好多是好久没用就忘记怎么使用了,今天刚刚好要使用msyql来查询比较复杂的查询语句,要用到groud by分组。

阅读全文 » 1343天前
2017年11月30日

技术饭 Centos下MySQL出现Unknown/unsupported storage engine: InnoDB的解决方案

Centos下MySQL出现Unknown/unsupported storage engine: InnoDB的解决方案,今天同事公司服务器上的mysql启动不了了,弄了一早上头大,昨天还是可以正常运行的,今天怎么突然就奔了呢,在shell里登陆mysql提示不存在sock,也就是msyql没有启动,但却可以使用stop命令,后续查看err日志中发现了一些问题。

阅读全文 » 1420天前
2017年09月14日

技术饭 EXPLAIN分析sql时,如何优化Using temporary ; Using filesort

EXPLAIN分析sql时,如何优化Using temporary ; Using filesort,1. 对需要查询和排序的字段要加索引。​2. 在一定环境下,left join还是比普通连接查询效率要高,但是要尽量少地连接表,并且在做连接查询时注意观察索引是否起了作用。3. 排序尽量对第一个表的索引字段进行,可以避免mysql创建临时表,这是非常耗资源的。

阅读全文 » 1422天前
2017年09月12日