mysql
qq_34412985
Coding make me happy.
展开
-
解决Navicat12中2059 - Authentication plugin ‘caching sha2 password‘ cannot be loaded: 的问题
2.将navicat12升级成navicat15就不会报错了,我使用的这个办法,因为mysql数据库服务器的高级权限拿不到。navicat12连接mysql8时会报错。1.mysql服务器设置。原创 2024-01-29 18:29:53 · 474 阅读 · 0 评论 -
mysql修改字符集utf8为utf8mb4
mysql utf8mb4原创 2022-12-20 17:21:47 · 1840 阅读 · 0 评论 -
mysql报错 is longer than the server configured value of ‘wait_timeout‘
davinci使用腾讯云上的mysql的davinci数据看板用户没有新加的库读权限导致执行sql时报超时,没有提示无权限开始以为是mysql5.7添加json函数导致的,其实是因为权限不够导致的原创 2022-05-11 23:20:10 · 1022 阅读 · 0 评论 -
mysql的CONCAT特殊用法等同于or关键字
select * from user t where CONCAT( t.`user_name`, t.`real_name` ) LIKE CONCAT( '%', '路', '%' )等同于下面sql语句,前提条件是user_name和real_name字段不能为空,否则统计的数据不全select * from sys_user t where t.`user_name` LIKE CONCAT( '%', '路', '%' ) or t.`real_name` LIKE CONCAT( '%'原创 2022-03-01 18:57:28 · 700 阅读 · 0 评论 -
MySQL:去除\n等特殊字符串,navicat中数据还看不到\n
记录一下今天在工作时候遇到的一个问题,在前台录入数据的时候,可能会将Excel中换行符复制到了前台页面中,然后保存到了数据库中。我这里贴上一点sql文件,仅供测试使用:DROP TABLE IF EXISTS `ucas_test`;CREATE TABLE `ucas_test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `material_macode` varchar(50)原创 2021-11-03 11:49:38 · 2908 阅读 · 0 评论 -
Mybatis解决数据库Blob类型存储与读取问题
1.Blob介绍首先,先简单介绍下数据库Blob字段,Blob(Binary Large Object)是指二进制大对象字段,顺带介绍下Clob类型,Clob(Character Large Object)是指大字符对象。其中Blob是为存储大的二进制数据而设计的,而Clob是为存储大的文本数据而设计的。JDBC的PreparedStatement和ResultSet都提供了相应的方法来支持Blob和Clob操作,Mybatis各版本也支持对Blob或者Clob的存储以及读取操作,本文详细介绍Mybat原创 2021-10-31 19:05:17 · 7488 阅读 · 0 评论 -
mysql No timezone mapping entry for ‘Asia/Shanghevidence‘
springboot的java程序jdbc连接mysql数据库时,jdbc的连接配置成这样&serverTimezone=Asia/Shanghevidence导致以下报错No timezone mapping entry for 'Asia/Shanghevidence'将jdbc的连接改成&serverTimezone=Asia/Shanghai原创 2021-10-13 14:30:28 · 2101 阅读 · 0 评论 -
mysql 修改某字段的格式为 utf8mb4
ALTER TABLE sys_oper_log MODIFY `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; #查看表中字段字符集 SHOW FULL COLUMNS FROM sys_oper_log;原创 2021-09-10 16:10:27 · 582 阅读 · 0 评论 -
mysql 插入数据时,出现“\xF0\x9F\x8D\x80\xE5\xB0“这种情况的处理!
问题Incorrect string value: ‘\xF0\x9F\x8D\x80\xE5\xB0…’ for column ‘question’ at row 1我们知道设置数据库编码格式,表编码格式和字段编码格式的时候,一般设置为“utf-8”,这对于汉字来说足够了,在mysql中utf8占3个字节,但是对于移动端的特殊表情符号来说,三个字节是不够的,他需要四个字节。这个时候我们使用utf8就会出现‘\xF0\x9F\x8F\x80’的问题。解决方法1. 可以对4字节的字符进行编码存储,然原创 2021-09-09 17:18:38 · 2757 阅读 · 0 评论 -
mysql存储过程动态创建和删除表,比如一次创建1万张表
创建几个相同结构的表,表名前缀相同,后缀是动态的数字 动态删除表 DELIMITER $ DROP PROCEDURE IF EXISTS `drop_order_info_1-12`; CREATE PROCEDURE `drop_order_info_1-12` ( in num int) BEGIN DECLARE i INT; SET i = 1; WHILE i <...原创 2021-07-30 19:29:16 · 369 阅读 · 0 评论 -
SQL中的替换函数replace()使用
语法REPLACE ( string_expression , string_pattern , string_replacement )参数string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 ('')。string_replacement 替换字符串。string_repla原创 2021-06-07 18:17:19 · 5583 阅读 · 0 评论 -
sql 分组后每组取第一个_mysql在分组后怎么取第二条(实现rank)
a1617d8388fae69f72dd1bbd616df8c2.png需求: 每个班取出成绩排第二的同学排第一的在分组排序后很容易得到,但取排第二的就需要rank排序,而mysql没有内置的rank函数,要实现这个需求,就得自己实现建表语句如下 CREATE TABLE `score_info` ( `class` varchar(20) DEFAULT NULL, `student_name` varchar(20) DEFAULT NULL, ...原创 2021-06-01 16:10:43 · 863 阅读 · 0 评论 -
使用Druid连接oracle时报SQLException: not support oracle driver5.1
2018-12-2916:17:10.600[main]ERRORc.alibaba.druid.pool.DruidDataSource836-{dataSource-1}initerror java.sql.SQLException:...复制2018-12-2916:17:10.600[main]ERRORc.alibaba.druid.pool.DruidDataSource836-{dataSource-1}initerrorjava.sql.SQ...原创 2021-05-28 15:44:35 · 2170 阅读 · 0 评论 -
ERROR 2000 (HY000): Unknown MySQL error
mysql5.7物理机安装后,修改my.cnf中开启binlog日志后,重启mysql后,使用机器自带客户端登录连接mysql时报错ERROR 2000 (HY000): Unknown MySQL error,mysqldump 导出所有表的数据也会报这个错,解决:1.使用systemctl restart mysqld时使用navicat也不能连接,但是使用systemctl stop mysqld后再使用systemctl start mysqld就可以通过navicat连接了,但仍不能用my原创 2021-05-20 16:46:20 · 2804 阅读 · 0 评论 -
mysql和oracle的sql中去掉字符串前面的0
mysql将数据库中手机号前面的0去掉UPDATE appealSET phone = substring( phone, 2, LENGTH( phone ) - 1 )WHERE LENGTH( phone ) > 11或者select cast(tt as UNSIGNED) from test;如果是身份证号就只能先转成数字在转成字符串oracle数据库中:去除字符串前面或者后面多余的0 --去掉字符串后面多余的0 select rtrim('...原创 2021-02-01 10:31:46 · 5137 阅读 · 0 评论 -
mysql字符串和数字的互相转换
1. 最简单的方式就是直接在字符串后面+0,就相当于直接把字符串转为数字类型了,下面可以看一下具体的操作,可以看到通过+0操作,成功将两个字符串转化为了数字,并得到了相加后的结果。2. 使用CAST()函数,使用方式为CAST(value AS type);,下面可以看一下具体的操作例子,通过如下sql语句查看结果:SELECT CAST('5.45' AS SIGNED);可以看到结果直接将字符串'5.45'转为了数字5,原因是SIGNED代表整数。3. 如果想要...原创 2021-01-28 12:37:18 · 4259 阅读 · 1 评论 -
mysql5.7设置忽略大小写后,模糊查询时数据也忽略大小写,oracle11gR2不是
mysql5.7设置忽略大小写后,模糊查询时数据也忽略大小写,oracle11gR2对数据大小写敏感mysql5.7查询如下:oracle11gR2查询如下:原创 2021-01-23 16:13:10 · 161 阅读 · 0 评论 -
SpringDataJPA使用QueryByExample模糊查询遇到的坑
遇到的情况:在做短信渠道管理添加时,先要去校验数据库中是否有该产线-短信类型-渠道的记录,如果存在就不添加。//在库中是否存在该记录 private boolean ifExistChannelConfig(SmsChannelProductConfig smsChannelProductConfig){ ExampleMatcher matcher = ExampleMatcher.matching() //构建对象 .withMatcher(原创 2021-01-10 17:15:31 · 879 阅读 · 0 评论 -
springdatajpa 保存中文到mysql数据库乱码问题总结
spring jpa 保存中文到mysql数据库乱码问题总结1、首先新建数据库,字符集一定要设置为:utf8,否则乱码2、Spring Jpa配置mysql内容,需要设置编码格式,否则乱码spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/Stock?useUnicode=true&characterEncoding=utf-8原创 2021-01-10 12:53:31 · 523 阅读 · 0 评论 -
报错The reference to entity “characterEncoding“ must end with the ‘;‘ delimiter
The reference to entity "characterEncoding" must end with the ';' delimiter数据源配置时加上编码转换格式后出问题了:The reference to entity "characterEncoding"mustendwiththe ';' delimiter这个错误就是 context.xml中设置数据源链接URL的问题<context-param> <param-name&g...原创 2021-01-10 12:52:07 · 181 阅读 · 0 评论 -
记录一次mybatis使用mysql的sum统计string类型后返回值为对象值[B@69df0dd2
QUESTION_NM 字段为字符串SELECT A.SYS_CODE, ifnull( SUM( A.TNM ), '0' ) TNMFROM ( SELECT r.SYS_CODE, cps.PROBLEM_ID, cps.QUESTION_NM TNM, cps.QUESTION_TO_BE_SOLVE BSO FROM t_dq_check_rule r ...原创 2020-12-26 20:32:39 · 1035 阅读 · 1 评论 -
mysql对字符串类型数据求和
mysql直接使用sum(varchar)会导致出现结果出现小数位异常,需要使用cast()函数或者CONVERT()对数据进行格式化,具体如下Cast(字段名 as 转换的类型 ),可以转换的类型是有限制的,其中类型可以为:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型 (DECIMAL (10,2)//设置精度)SIGNED intTIME 时间型 -- 错误 SELECT SUM(price...原创 2020-12-26 20:06:49 · 3847 阅读 · 0 评论 -
mysql插入的时间莫名的加一秒
1、问题描述 我获取当天最大的时间:结果是当天的23:59:59秒1 public static Date getDateWithMaxTime(Date date) {2 Calendar calendar = Calendar.getInstance();3 calendar.setTime(date);4 calendar.set(Calendar.HOUR_OF_DAY, 23);5 calendar.set(Ca转载 2020-11-25 12:10:29 · 952 阅读 · 0 评论 -
MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its declaration and binary logging is enabled(you *might* want to use the less safe log_bin_trust_function_creators v原创 2020-11-10 07:48:35 · 435 阅读 · 0 评论 -
case...when...和MySql、Oracle、SqlServer 处理空值
1、Case具有两种格式,简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2、判断某字段是否为null,和判断是否为字符或数字时的写法不原创 2020-09-11 14:04:46 · 922 阅读 · 0 评论 -
MySQL类型转换 使用CAST将varchar转换成int类型排序
mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?1 BINARY[(N)]2 CHAR[(N)]3 DATE4 DATETIME5 DECIMAL6 SIGNED [INTEGER]7 TIME8 UNSIGNED [INTEGER]例子:--使用CAST将varchar转换成int类型排序select server_id from cardserver where game_id = 1 order by CAST(server_i原创 2020-08-17 12:53:53 · 1583 阅读 · 0 评论 -
docker容器创建的mysql删除cart数据库时报1010 - Error dropping database (can‘t rmdir ‘./cart‘, errno: 39)
这是因为在数据目录下有表相关的数据(不是表),此时应该进入存放表的目录下删除与表相关的数据,一般数据存放目录默认为/var/lib/mysql,cd到目录下执行命令:cd /var/lib/mysql/cart删除该目录下的文件:rm -rf *进入mysql数据库 再次执行drop database cart;执行成功问题的原因:cart目录下存在着mysql数据库不知道的文件,即mysql数据库中没有该文件的数据字典信息。解决办法:手动将该目录下的残留的文件删除,#rm -f /usr原创 2020-08-13 15:32:33 · 470 阅读 · 0 评论 -
MySql排序查询将null放在最后的解决办法
MySQL中使用order by对字段进行排序的时候,如果是降序排序,那字段值为null的记录会排在最后,但是如果是升序排序,那字段为null的记录会排在最前面。 目前碰到一个需求,就是根据字段进行升序排序的时候,字段值为null也需要放在最后,这边可以通过下面方法进行处理; 假设当前对 t_user 进行查询,并通过status字段进行升序排序,t_user表中的数据如下:第一种方法:SELECT * FROM t_user ORDER BY -STATUS DESC查询结原创 2020-07-30 13:11:17 · 1891 阅读 · 0 评论 -
mysql和oracle的语法区别
最近需要迁移项目,将数据库由Oracle改为MySQL。由于两者的语法有部分不一样,所以需要把Oracle中能用但MySQL中不能用的函数/类型等改为MySQL中能用的,以下是总结出的部分语法区别:一、数据类型 1. Number类型 MySQL中是没有Number类型的,但有int/decimal 类型,Oracle中的Number(5,1)对应MySQL中的decimal(5,1),Number(5) 对应 int(5)。MySQL中的数字型类型比较多,分的也比较细,还有tiny...转载 2020-07-28 19:33:22 · 2997 阅读 · 0 评论 -
错误码: 1630 FUNCTION count does not exist. Check the ‘Function Name Parsing and Resolution‘ section in
错误码: 1630FUNCTION count does not exist. Check the'Function Name Parsing and Resolution' section in the Reference Manual解决方案:如sum() count() avg这些函数里面是这样子写的sum () sum和()分开了,不是挨着写的,所以报这个错oracle11gR2没报这个错误,mysql5.7报这个错了,mysql将count当成函数了oracle的rowNum从1开始,my原创 2020-07-28 15:22:20 · 1817 阅读 · 0 评论 -
linux中的centos设置mysql表名不区分大小写及踩坑
查看mysql版本:[root@localhost logs]# mysql -Vmysql Ver 14.14 Distrib 5.6.37, for linux-glibc2.12 (x86_64) using EditLine wrapperlower_case_table_names参数详解:lower_case_table_names=1其中0:区分大小写,1:不区分大小写查询当前设置:复制代码mysql> show variables like ‘%lower%’;s原创 2020-07-23 23:19:16 · 988 阅读 · 0 评论 -
用kettle实现数据库迁移之oracle到mysql
项目完成后,需要把历史oracle 的数据库转移mysql用kettle 转换数据。步骤:1、打开spoon.bat,文件-->新建-->转换,点击“主对象树”,DB连接右键“新建”,按要求填上数据库连接信息,不再赘述,需要建两个,一个是oracle(源库),一个是MySQL(目标库)2、点击“核心对象”,分别在“输入”和“输出”中选择“表输入”和“表输出”拖到右侧空白区域,并按住shift点击表输入再点击表输出,画连接线,如下图所示:3、表输入如下图,选择源数据..原创 2020-07-21 23:12:16 · 489 阅读 · 0 评论 -
Oracle数据导入Mysql中
一.Navicat Premium中的数据迁移工具为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据。尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量,用这种简陋的工具不大可靠。意外发现平时用的数据库视图工具Navicat Premium中有数据迁移工具,意外的好用。这个工具本身支持mysql,oracle,sqlLite,PostgreSql数据库,因此而也提供了在不同数据库之间迁移数据的功能。迁移之前,先确保你建立了这两个数据库的connec转载 2020-07-21 23:07:36 · 1642 阅读 · 0 评论 -
操作MySQL出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
[ERR] 12> 1170 - BLOB/TEXT column 'TABLE_OBJID' used in key specification without a key lengthmysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法一、问题pandas对象将DataFrame数据保存到mysql中时,出现错误提示: BLOB/TEXT column used in key s转载 2020-07-21 19:52:57 · 4526 阅读 · 0 评论 -
用sql语句快速生成大量数据,批量生成数据
用sql语句快速生成大量数据,批量生成数据1.首先先建两个表– 创建一个临时内存表set global log_bin_trust_function_creators=1;DROP TABLE IF EXISTS vote_recordss_memory;CREATE TABLE vote_recordss_memory (id int(10) unsigned NOT NULL AUTO_INCREMENT,user_id varchar(20) NOT NULL DEFAULT ‘’,v原创 2020-07-05 16:40:12 · 2820 阅读 · 0 评论 -
Docker安装MySQL(8和5.7)
本篇将介绍如何使用 Docker 部署 MySQL 数据库及远程访问配置安装 MySQL拉取镜像使用下面的命令拉取 MySQL 数据库的镜像: 1 2 3 $ sudo docker pull mysql # 拉取最新版本的镜像,当前为 MySQL 8 版本,tag 为 latest $ sudo docker pull mysql:5.7 # 指定拉取 MySQL 5.7 版本 也可以使用搜索命令,查找其他的 My.原创 2020-06-24 23:37:54 · 295 阅读 · 0 评论 -
mybatis的pagehelper分页缺点
pagehelper不好优化pagehelper数据量达到一定数量时limit分页时会特别慢,count(*)把数据库卡死数据量太大时,做组件将数量查出。原创 2020-04-16 19:20:24 · 9336 阅读 · 0 评论 -
为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池。官网:https://github.com/brettwooldridge/HikariCP为何要使用HiKariCP?这要先从BoneCP说起:什么?不是有C3P0/DBCP这些成熟的数据库连接池吗?一直用的好好的,为什么又搞出一个BoneCP来?因为,传说中BoneCP在快速这个特点上做到了极致...转载 2020-04-13 15:03:43 · 167 阅读 · 0 评论 -
分库分表利器——sharding-sphere
简介Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这3款相互独立的产品组成。他们均提供标准化的数据分片、读写分离、柔性事务和数据治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。官网http://shardingjdbc.io/...转载 2020-04-13 14:45:18 · 529 阅读 · 0 评论 -
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized..
mysql5.6.16使用jdbc连接时报错:具体报错信息:java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone.You must configure either the server or JDBC drive...原创 2019-12-03 17:26:23 · 1858 阅读 · 1 评论