mysql数据库
你好龙卷风!!!
如你所愿
展开
-
解决:net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “xx“ “xx“
有的博客说@InterceptorIgnore(tenantLine = "true")的作用是对某个Mapper方法 忽略多租户处理,从这次报错来看不仅是这个作用,感觉应该还有忽略mysql关键词解析的作用,因为我的sql包含关键词database原创 2024-05-07 20:58:17 · 1552 阅读 · 1 评论 -
mysql 迁移-data目录拷贝方式
删除 auto.cnf (保证 mysql 实例 server_id 唯一,删除会重新生成,否则主从是做不起来的)背景:从服务器进水坏掉,要重新做主从,但以拷贝的方式太慢,一夜都没好,只好想到了拷贝mysql数据文件的方式。4.并且删除 ib_logfile0 、ib_logfile1 (引擎事务文件)3.在复制的时候,应将data目录下的 ibdata1 文件一并复制过去,2.将主的data目录拷贝到需要从服务器data下。1.把主服务器和备服务器的mysql停掉。下面就可以愉快的做主从配置了。原创 2024-02-21 15:31:54 · 841 阅读 · 1 评论 -
MySQL查看数据库、表容量大小
【代码】MySQL查看数据库、表容量大小。原创 2023-10-23 17:09:08 · 153 阅读 · 0 评论 -
jsp maxleng 和mysql的字段 长度都为100 存到数据库里报太长存不下的原因
而在mysql的字段长度为100时,具体可以存储多少个字符是取决于字符的编码格式的,如果是ASCII字符,则可以存储100个字符;如果是UTF-8编码,由于UTF-8编码使用变长字符编码,一个字符可能占用1到4个字节的存储空间,所以会存在jsp校验过的100长度字符存不到mysql长度为100的字符里。所以设计时 前端的maxleng应等于数据库UTF-8编码的长度2-4倍。在jsp中,maxleng=100可以存储100个字符。因此在UTF-8编码下,大约可以存储25到100个字符。原创 2023-09-22 16:55:09 · 102 阅读 · 0 评论 -
mysq 主从同步错误之 Error_code 1032 handler error HA_ERR_KEY_NOT_FOUND
然后数据同步到从库,在参数中加上UUID(空格)起始事务编号(空格)中止事务编号原理:purge掉master log中,同步数据的SCN之前的事务,从同步时间点以后开始读取binlog;这样做的好处是不用去master操作,清理binlog(手抖清理了其他东西就不好了~)GTID_SKIP() 当发生少量的错误时,使用show slave status\G;找到UUID和出错的事务编号,参数中加上 UUID(空格)事务编号原理:生成一个空事务来跳过原本出错的事务,然后继续往下同步。原创 2023-09-18 16:13:42 · 2386 阅读 · 0 评论 -
mysql8 Expression #16 of SELECT list is not in GROUP BY clause and contains nonaggregated column
在[mysqld] 和 [mysqld_safe]中间加配置项,然后重启。不要加错地方了,否则是不好使的。原创 2023-05-30 10:44:49 · 126 阅读 · 0 评论 -
怎么通过navicat获得要更新的sql
看navicat的历史日志,从历史日志中获取你刚在navicat页面操作所产生的sql。如果你不会写更新sql,只会用navicat直接操作,但实施又要求你写成sql怎么办?在工具-》历史日志里可以看到哦。原创 2022-12-26 18:40:15 · 297 阅读 · 0 评论 -
MySQL left join多表使用count()统计数据有误
COUNT(DISTINCT(a.id)) AS '工单数量'使用DISTINCT(主表主键) 去重统计就好了。原创 2022-11-17 17:41:57 · 1454 阅读 · 0 评论 -
mysql-proxy代理内网数据库
一、使用场景介绍mysql-proxy的机器属于代理机器也就是相当于白名单的审核机器,通过防火墙规则,限制允许那些IP访问本机的代理内网数据库的端口, 有点:保证内网的数据库不暴露在公网上,保证了数据库的安全。 缺点:一旦mysql-proxy代理服务器挂掉了,就相当于应用都链接不上了数据库。同时如果太多的应用程序通过mysql-proxy链接内网数据库的话,mysql-proxy代理服务器必须也得保证足够的带宽,负责导致链接数据库特别的慢,或者链接不上数据库。2台物理机器,系统都是CentOS relea转载 2022-10-30 15:10:27 · 1307 阅读 · 0 评论 -
百万数据的导入导出
附easyexcel 上GitHub地址: https://github.com/alibaba/easyexcel GitHub地址上教程和说明很详细,并且附带有读和写的demo代码,这里对它的介绍我就不再详细说了。至于EasyExcel底层怎么实现的这个还有待研究。转载 2022-10-14 09:42:26 · 296 阅读 · 0 评论 -
mysql——非主键自增
直接把cid的主键给去了报错 there can be only one auto column and。什么是自增必须是个键,其实键就是索引,把原有cid主键去了,再设为唯一索引(键)就能保存了。因为历史的原因主键和自增建设成了联合主键,这样就导致id啥时间重了,都不知道,原创 2022-09-13 16:49:09 · 1972 阅读 · 0 评论 -
mysql 扩展分区
话务分区表,按季度分区, 18年分了72个分区,领导问18年后怎么办?答:在继续追加分区即可p_max为你最后一个分区表ALTER table cti_acd_event REORGANIZE PARTITION p_max INTO(PARTITION p_2037_03 VALUES LESS THAN (TO_DAYS('2037-03-01')),PARTITION p_2037_06 VALUES LESS THAN (TO_DAYS('2037-06-01')).原创 2022-03-07 11:06:58 · 560 阅读 · 0 评论 -
mysql的默认隔离级别
原文:https://www.cnblogs.com/rjzheng/p/10510174.html知识点总结-----------------------------------------------------------------------------------------------------------------------1.数据库默认隔离级别: mysql ---repeatable,oracle,sql server ---read commited2.mysq.转载 2022-02-09 09:36:59 · 355 阅读 · 0 评论 -
二维分组sql统计
需求:按照公司和工单类型分组统计思路先case when计数,再group公司id分组 sum求和就行了SELECT r.name,sum(w.sys_basic_bao_xiu_count) as "报修",sum(w.sys_basic_bao_shi_count) as "报事",sum(w.sys_basic_tou_su_count) as "投诉",sum(w.sys_basic_jian_yi_count) as "建议"from (SELECT ..原创 2021-08-18 13:43:36 · 534 阅读 · 2 评论 -
mysql varchar类型中的数字排序问题
SELECT a.id AS "floor.id", a.floor_name AS "floor.floorName"FROM res_floor aWHERE a.del_flag = falseAND a.unit_id ='f088b646cf3346c48e7e6cf95bc88879'ORDER BY (a.floor_name+0)原创 2021-06-09 11:45:51 · 134 阅读 · 0 评论 -
mysql 5.6 插入表情符、生僻字
原因:mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情,导致报错.解决方案一 .彻底解决改变库表的编码格式 数据库目前采用的编码为UTF8, 转换为可支持4个字节的utf8mb4_unicode编码。一劳永逸,但因四个字节存储空间较大,从数据库优化角度不建议这么做1.修改数据库表的编码格式字符集为: utf8mb4 -- UTF-8 Unicode排序规则为:utf8mb4_general_ci2.同样修改..原创 2021-05-19 20:49:34 · 1242 阅读 · 3 评论 -
mysql分区表的原理和 优缺点
1.分区表的原理分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表的索引只是在各个底层表上各自加上一个相同的索引,从存储引擎的角度来看,底层表和一个普通表没有任何不同,存储引擎也无须知道这是一个普通表还是一个分区表的一部分。在分区表上的操作按照下面的操作逻辑进行:select查询:当查询一个分区表的时候,分区层先打开并锁住所有的底层表,优化器判断是否可以过滤转载 2021-05-08 16:22:18 · 132 阅读 · 0 评论 -
mysql对历史数据分区
mysql对历史数据按季度分区1.先删除原主键Alter table crm_def_worksheet drop primary key;2.对原主键和现有主键做联合主键Alter table crm_def_worksheet add primary key(`id`, `create_date`);3.执行分区语句ALTER TABLE crm_def_worksheet PARTITION BY RANGE (to_days(create_date))(PARTITI.原创 2021-05-08 16:05:51 · 631 阅读 · 0 评论 -
java.sql.SQLException: null, message from server: “Host ‘xx‘ is blocked because of many co
java.sql.SQLException: null, message from server: "Host 'xx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'出现这个的原因是错误连接达到数据库设置的最大值。此时需要释放重置连接最大值。进入mysql使用命令flush-hosts;...原创 2021-04-01 11:26:53 · 1718 阅读 · 0 评论 -
手把手教你 ssm 项目整合shardingsphere4.10
前言官方网站http://shardingsphere.apache.org/index_zh.html网上费了老大力气找各种整合ssm整合shardingjdbc的项目发现都是1.x的,连个or查询都不支持,有毛用,废话不说了,直接上干货一.sql准备准备两张表user_0,user_1DROP TABLE IF EXISTS `user_0`;CREATE TABLE `user_0` ( `id` int(11) NOT NULL AUTO_INCREMENT, .原创 2021-01-13 23:00:19 · 861 阅读 · 0 评论 -
mysql存储过程巧用or规避输入为空的值
假如你不能保障证输入的is_disabled不为空,为空时存储报错的尴尬问题时可以这样做SELECT id as user_id ,work_no, name as user_name,office_id from sys_user where del_flag=0 and (is_disabled ='1' or is_disabled='' or ISNULL(is_disabled) )...原创 2021-03-18 12:22:04 · 168 阅读 · 0 评论 -
mysql 5.7查看表分区信息
方法1:sql查询select partition_name part,partition_expression expr,partition_description descr,table_rows from INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA=SCHEMA() AND TABLE_NAME= 'xxx';方法2:查看数据存储位置,进入数据库存储位置查看show variables like 'datadir';...原创 2021-03-17 18:25:49 · 510 阅读 · 0 评论 -
java类实现导出mysql数据库全表 insert语句
import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLExceptio.原创 2021-03-10 11:37:54 · 1951 阅读 · 3 评论 -
mysql 替换字段的字符
sql语法: UPDATE 表名 SET 字段名=replace(字段名, ‘被替换字符串’, '用来替换的字符串') ;sql: UPDATE `member` SET `phone`=replace(`phone`, '\'', '') ;原创 2021-03-09 09:37:06 · 122 阅读 · 0 评论 -
mysql中将多行数据合并成一行数据 GROUP_CONCAT()
一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据例如:一个活动id(activeId)对应多个模块名(modelName),按照一般的sql语句:1 SELECT am.activeId,m.modelName 2 FROM activemodel am 3 JOIN model m 4 ON am.modelId = m.modelId 5 ORDER BY am.activeId查询出的列表为图1所示: 图1修改过后的sql语句,查询后如.转载 2021-02-03 13:44:42 · 1605 阅读 · 0 评论 -
mysql数据库分表后 报表的存储过程怎调用
一、使用数据库中间件使用像 Mycat 之类的数据库中间件,报表里的简单 SQL 基本都能延续使用(像 Mycat 支持 SQL92 标准),但对复杂 SQL(嵌套查询和多表 JOIN)就比较麻烦,要考虑全局表等设置。而报表业务里复杂查询会很多,有些还伴随过程和逻辑判断,这时用数据库中间件就有点吃力了。这里列一下报表场景下使用数据库中间件的缺点:< 缺点 >1. 复杂计算支持不足,且无存储过程替代方案;2. 多样性数据源支持不足,如报表数据来源还有文件或 NoSQL 时;3.原创 2021-01-19 16:25:50 · 439 阅读 · 0 评论 -
mysql索引笔记1:聚簇索引和非聚簇索引(主键索引和非主键索引)、回表查询
聚簇索引和非聚簇索引(主键索引和非主键索引)主键索引也被称为聚簇索引。聚簇索引:聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。聚簇索引将索引和数据行放到了一块,找到索引也就找到了数据。因为无需进行回表操作,所以效率很高。 回表查询:InnoDB 中,对于主键索引,只需要走一遍主键索引的查询就能在叶子节点拿到数据。而对于普通索引,叶子节点存储的是 key + 主键值,因此需要再走一次主键索引,通过主键索引找到行记录,这就是所谓的回表查询,先定位主键值,再定位行记录。 InnoDB中.转载 2020-12-27 12:47:28 · 718 阅读 · 0 评论 -
mysql索引笔记2:联合索引、最左匹配原则、覆盖索引
联合索引两个或更多个列上的索引被称作联合索引。联合索引底层使用的是B+树索引(只有一棵树),排序时它首先按照第一个索引排序,在第一个索引相同的情况下,再按第二个索引排序,依次类推。 在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,因为右边的索引都是在左边的索引排序的基础上进行排序的,如果没有左边的索引,单独看右边的索引,其实是无序的。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持转载 2020-12-27 12:45:38 · 222 阅读 · 0 评论 -
mysql索引笔记4:MySQL的索引结构为什么使用B+树?
前言在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么选择B+树作为索引结构。目录一、二叉查找树(BST):不平衡二、平衡二叉树(AVL):旋转耗时三、红黑树:树太高四、B树:为磁盘而生五、B+树六、感受B+树的威力七、总结一、二叉查找树(BST):不平衡二叉查找树(BST,Binary Search Tre转载 2020-12-23 11:39:03 · 172 阅读 · 0 评论 -
mysql索引笔记3: 索引下推
导读 索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。 在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。 在使用ICP的情况下,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQL服务器传递的条件,只有当索引符合条转载 2020-12-23 11:36:10 · 123 阅读 · 0 评论 -
mysql分区和分表的区别以及应用场景
一,什么是mysql分表什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,是多个的物理表实现方法1,手动物理分表,优点:业务简单的情况下实现比较简单 缺点:比较low你得用代码控制去哪张表去增删改查,排序分页问题较多2,利用merge存储引擎来实现分表 Mysql MERGE引擎简介:https://blog.csdn.net/qmhball/article/details/7499432 实现分表:https://www.cnblogs.com/gxz...原创 2020-12-23 11:32:37 · 513 阅读 · 0 评论 -
MYSQL之表分区----按日期分区
mysql> create table rms (d date) -> partition by range (d) -> (partition p0 values less than ('1995-01-01'), -> partition p1 VALUES LESS THAN ('2010-01-01')); 上面的例子中,就是直接用"Y-m-d"的格式来对一个table进行分区,可惜想当然往往不能奏效,会得到一个错误信息:E...转载 2020-12-23 11:23:37 · 4472 阅读 · 3 评论 -
MySQL修改my.cnf配置不生效的解决方法
1,参数没有写到 [mysqld] 下面而是写到 配置文件的末尾处了,我今天犯的错就是这个2,没有重启3,没有退出当前会话4,修改派配置文件错误5,参数写错了,打脸6,修改了错误的配置文件这里只说了修改 my.cnf,并没有说清楚其绝对路径是哪个文件。也就是说,有可能修改的不是正确路径下的my.cnf文件。在MySQL中,是允许存在多个 my.cnf 配置文件的,有的能对整个系统环境产生影响,例如:/etc/my.cnf。有的则只能影响个别用户,例如:~/.my.cnf。M.原创 2020-12-18 18:53:33 · 6521 阅读 · 2 评论 -
mysql配置调优详解
[mysqld]#开启MySQL计划任务event_scheduler=ON#默认数据库引擎default-storage-engine=INNODB#默认字符集,如果是网上在线客服应用,建议采用utf8mb4character-set-server=utf8#mysql 服务器监听端口port = 3306#数据库启动路径datadir=/var/lib/mysql# Disabling symbolic-links is recommended to prevent a.原创 2020-12-15 14:45:35 · 288 阅读 · 0 评论 -
mysql dead but subsys locked 问题解决
今天mysql卡顿后停止mysql服务没停掉,杀掉mysql进程后还是不行查看service mysqld status; 发现mysql dead but subsys locked解决办法 1 service mysqld stop (停止服务) 2 rm -fr /var/lib/mysql/* (删除/var/lib/mysql下的所有文件) 3 rm /var/lock/subsys/mysqld(删除锁定文件) 4 killall mysqld...原创 2020-12-14 20:55:12 · 593 阅读 · 0 评论 -
Seconds_Behind_Master= NULL解决办法
临时解决办法stopslave;setglobalmax_binlog_cache_size=512M;startslave;彻底解决max_binlog_cache_size#这是设置最大二进制日志的缓存区大小的变量。若处理多语句事务时需要的内存大小比设置值大的话就会提示一个error。在my.cnf中增加max_binlog_cache_size = 512M值的大小看服务器性能和业务需要配置然后重启mysql...原创 2020-12-14 20:43:06 · 1139 阅读 · 0 评论 -
mysqld dead but pid file exists
[root@ceshi mysql]#/etc/init.d/mysqld statusmysqld dead but pid file exists[root@ceshi mysql]#cd /var/run/mysqld[root@ceshi mysqld]#lltotal 4-rw-rw-r--. 1 mysql mysql 5 Mar 18 11:59 mysqld.pid[root@ceshi mysqld]#rm -f mysqld.pid[root@ceshi mysqld...转载 2020-12-14 20:34:52 · 130 阅读 · 0 评论 -
【Navicat】使用navicat执行sql 查询速度很慢解决方法
Navicat 远程连接Mysql执行普通sql速度慢问题:场景: navicat可以连接上 远程服务器的mysql。但是在navicat执行最简单的sql语句,都非常慢。解决方法: 选中数据库---右键点击连接---选择高级 --勾选保持连接间隔 -- 默认是 240,可以将时间修改为例如10 --- 最后保存即可...转载 2020-12-14 14:32:03 · 5808 阅读 · 0 评论 -
Mysql索引面试题
本文来自一位不愿意透露姓名的粉丝投稿,由Hollis整理并"还原"了面试现场。相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只是个小学生水平。以下...转载 2020-12-01 09:57:48 · 133 阅读 · 0 评论 -
mysql 5.7.19 创建用户并授权
mysql5.7.19 有个很蛋疼的东西就是创建用户的时候密码得复杂点比如加@符号,不然会报错创建拥有所有权限的用户GRANT ALL PRIVILEGES ON *.* TO 用户名@'%' IDENTIFIED BY 'My@Comm2018' WITH GRANT OPTION;创建拥有只读crm_yy库的权限的用户GRANT SELECT ON `crm_yy.* TO 用户名@'%' IDENTIFIED BY 'Hoop019!@#'刷新权限:FLUSH PRIVILE.原创 2020-11-19 17:10:02 · 145 阅读 · 0 评论