MySQL-QA-异常问题及解决方案(持续更新)

news2024/12/24 9:26:22

MySQL-Q&A(持续更新)

在这里插入图片描述

1.1 PID文件找不到

  • 问题描述

    错误详情:

    ERROR!The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid)

  • 解决方案

    首先排查配置文件,一般路径为:/etc/my.cnf

    检查是否有多余空格、无效属性、无效字符等

    如未检查出错误,将配置文件还原最初尝试启动,或者拷贝一份其他系统的配置文件。

1.2 数据库模式问题

  • 问题描述

    导入SQL文件时报错(在执行创建表或者增加字段时,发现row size长度过长,会导致出现以下错误)

    [ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB

  • 解决方案

    查看严格模式是否开启

    此异常是因为数据库开启了严格模式

    # 该sql语句查询数据库严格模式属性
    show variables like '%innodb_strict_mode%';
    

    执行后,innodb_strict_mode属性为ON,则代表严格模式开启,需要关闭

    Variable_name Value
    innodb_strict_mode ON

    修改严格模式配置

    # 修改MySQL配合文件,一般在/etc/my.cnf
    [root@localhost ~]# vi /etc/my.cnf
    # 在[mysqld]配置项下面新增一行
    [mysqld]
    innodb_strict_mode=0
    # 保存后,重启MySQL服务
    [root@localhost ~]# service mysqld restart
    

    查看严格模式是否修改

    # 登录MySQL,查询innodb_strict_mode为OFF,说明已关闭
    show variables like '%innodb_strict_mode%';
    

    问题解决

1.3 时区问题

  • 问题描述

    连接报错信息如下:

    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 driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

  • 解决方案

    连接url添加时区配置

    url: jdbc:mysql://localhost:3306/testuseUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

1.4 MySQL主从错误

  • 问题描述

    MySQL主从库不同步1236错误:could not find first log file name in binary log index file错误是主从的一个日志问题,只要简单的配置一下即可解决。

    最近造成MySQL主从库不同步问题,主要是因为电脑断了一下电,
    从库日志中的错误:

    Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 
    ‘Could not find first log file name in binary log index file’
    
  • 解决方案

    1. 停止从库同步

      mysql >slave stop;
      
    2. 主库中关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加

      mysql >flush logs;
      
    3. 查看主库状态,主要查看日志文件和位置:

      mysql >show master status;
      
    4. 回到从库中,执行命令,使日志文件和位置对应主库:

      mysql >CHANGE MASTER TO MASTER_LOG_FILE='log-bin.000005',MASTER_LOG_POS=107;
      
    5. 启动从库:

      mysql >slave start;
      mysql >show slave status; 
      
    6. 状态如下,基本上是正常了,可以主库修改,测试一下从库是否同步。

      Slave_IO_State: Waiting for master to send event
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      

1.5 MySQL连接错误

  • 异常描述

    No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

  • 异常原因

    javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

    The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves. Edit the list of disabled algorithms to include required algorithms. You can try to enable TLSv1 or TLSv1.1 first.

    JDBC driver may have disabled TLS > 1.1.

  • 解决方案

    在URL中添加在数据库后面添加

    ?createDatabaseIfNotExist=true&useSSL=false
    

    如:

    jdbc:mysql://192.168.2.2:3306/test?createDatabaseIfNotExist=true&useSSL=false
    

1.6 MySQL/MariaDB drop database error

  • 异常描述

    ERROR 1010 (HY000): Error dropping database (can’t rmdir ‘./db_test’, errno: 39)

  • 解决方案

    直接去MySQL/MariaDB数据库目录下删掉

    # rm -rf /usr/local/mysql/data/db_test
    

    有时候目录不一样,可以直接查找目录

    # 查询到数据库目录删掉就可以
    find / -name db_test
    

1.7 group_concat 长度限制

  • 默认值

    group_concat 默认值 1024

  • 属性详情

    • 用了group_concat后,select里如果使用了limit是不起作用的.
    • 用group_concat连接字段的时候是有长度限制的,并不是有多少连多少。但你可以设置一下。
    • 使用group_concat_max_len系统变量,你可以设置允许的最大长度。
    • 程序中进行这项操作的语法如下,其中 val 是一个无符号整数:
      SET [SESSION | GLOBAL] group_concat_max_len = val;
    • 若已经设置了最大长度,则结果被截至这个最大长度。
      在SQLyog中执行 SET GLOBAL group_concat_max_len = 10 后,重新打开SQLyog,设置就会生效。
    • GROUP_CONCAT将某一字段的值按指定的字符进行累加,系统默认的分隔符是逗号,可以累加的字符长度为1024字节。可以对这些参数进行修改。
  • 示例

    • 累加

      select group_concat(f_a) from t_one group by f_b;

      按f_b进行分组查询,将每组中的f_a进行累加。

    • 修改默认的分隔符

      select group_concat(f_a separator ‘_’) from t_one group by f_b;

      separator 是一个关键字,后面跟着要进行分隔的字符

    • 排序

      select group_concat(f_a order by f_a separator ‘_’) from t_one group by f_b;

  • 修改默认字符大小

    1).在MySQL配置文件中加上
    group_concat_max_len = 102400 #你要的最大长度
    2).可以简单一点,执行语句,可以设置作用范围
    SET GLOBAL group_concat_max_len=102400;
    SET SESSION group_concat_max_len=102400;

  • 和concat使用

    group_concat默认返回的是BLOB大对象,可以使用concat,返回字符串,还可以在返回的内容,在加入其它的数 据。

1.8 Mysql的大字段问题

1.8.1 问题描述
  • 报错一

    Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs

  • 报错二

    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

1.8.2 问题原因

因为mysql-innodb是按照page存储数据的,每个page max size是16k,然后每个page两行数据,所以每行最大8k数据。如果你的字段是blob之类的话,会存储在page之外的溢出区里。

但是innodb默认的approach(羚羊)存储格式会把每个blob字段的前864个字节存储在page里,所以你的blob超过一定数量的话,单行大小就会超过8k,所以就报错了

1.8.3 解决方案

解决方式是使用innodb的Barracuda(梭鱼) 存储格式

这种格式对blob字段的处理方式是在page里头只存储一个20byte大小的指针,其它全存在溢出区,所以你轻易超不了8k

  • 步骤一

    打开mysql的配置my.ini。添加:max_allowed_packet=16M

  • 步骤二

    打开mysql的配置my.ini。在innodb配置出添加:innodb_file_per_table=1

  • 步骤三

    然后命令检查下上述开关是否打开。

    show variables like ‘%per_table%’;

  • 步骤四

    设置mysql全局变量:innodb_file_format = Barracuda(梭鱼)

    命令:set GLOBAL innodb_file_format = ‘Barracuda’;

    然后检查下是否设置好了:

    命令:show GLOBAL VARIABLES LIKE ‘%file_format%’;

  • 步骤五

    设置对应表的属性:ROW_FORMAT=COMPRESSED

    然后检查下标的属性是否是你设置的:COMPRESSED

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】stack/queue

链表完了之后就是我们的栈和队列了&#xff0c;当然我们的STL中也有实现&#xff0c;下面我们先来看一下简单用法&#xff0c;跟我们之前C语言实现的一样&#xff0c;stack和queue有这么几个重要的成员函数 最主要的就是这么几个&#xff1a;empty&#xff0c;push&#xff0c;…

嘿!AI 编码新玩法上线!

随着 AI 智能浪潮到来&#xff0c;AI 编码助手成为越来越多开发者的必备工具&#xff0c;将开发者从繁重的编码工作中解放出来&#xff0c;极大地提高了编程效率&#xff0c;帮助开发者实现更快、更好的代码编写。 通义灵码正是这样一款基于阿里云通义代码大模型打造的智能编码…

ReorderData - 优化阅读笔记

主要实现文件: bolt/lib/Passes/ReorderData.cpp 支持 X86/Arm 测试用例&#xff1a; bolt/test/reorder-data-writable-ptload.c int a1,a2,a3,a4; // 待补充默认关闭&#xff0c;开启选项&#xff1a; # 指定要重排的数据段 --reorder-data<section1,section2,section3…

【ArcGIS】栅格数据进行标准化(归一化)处理

栅格数据进行标准化&#xff08;归一化&#xff09;处理 方法1&#xff1a;栅格计算器方法2&#xff1a;模糊分析参考 栅格数据进行标准化(归一化)处理 方法1&#xff1a;栅格计算器 栅格计算器&#xff08;Raster Calculator&#xff09; 方法2&#xff1a;模糊分析 空间…

Spring Boot Starter 与自动装配(Boot 3.0版本)

Spring Boot Starter 与自动装配 1、Starter Starter可以理解为Spring Boot中的一站式集成启动器&#xff0c;它包含了一系列可以集成到应用中的依赖项&#xff08;dependencies&#xff09;&#xff0c;可以快速一站式集成Spring组件及其他框架&#xff0c;而不需要到处找示…

CAP告诉你系统没法做到完美,只能做到权衡和适当

一、CAP介绍 CAP原理&#xff0c;全称为Consistency&#xff08;一致性&#xff09;、Availability&#xff08;可用性&#xff09;和Partition tolerance&#xff08;分区容错性&#xff09;&#xff0c;是分布式系统设计中的基本原理。它强调了在设计分布式系统时&#xff0c…

【深度学习笔记】优化算法——学习率调度器

学习率调度器 &#x1f3f7;sec_scheduler 到目前为止&#xff0c;我们主要关注如何更新权重向量的优化算法&#xff0c;而不是它们的更新速率。 然而&#xff0c;调整学习率通常与实际算法同样重要&#xff0c;有如下几方面需要考虑&#xff1a; 首先&#xff0c;学习率的大…

Verovio简介及在Windows10和Ubuntu 22.04上编译过程

Verovio是一个快速、便携、轻量级的开源库&#xff0c;用于将音乐编码倡议(Music Encoding Initiative(MEI))数字乐谱雕刻到SVG图像中。Verovio还包含即时转换器(on-the-fly converters)用于渲染Plaine & Easie Code、Humdrum、Musedata、MusicXML、EsAC和ABC数字乐谱。源代…

SSL证书:构建网络安全的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C++容器适配器stack、queue、priority_queue

文章目录 C容器适配器stack、queue、priority_queue1、stack1.1、stack的介绍1.2、stack的使用1.3、stack的模拟实现 2、queue2.1、queue的介绍2.2、queue的使用2.3、queue的模拟实现 3、priority_queue3.1、priority_queue的介绍3.2、priority_queue的使用3.3、仿函数3.4、pri…

如何使用Everything+cpolar实现公网远程搜索下载内网储存文件资料

文章目录 前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库&#xff0c;我们需要两个软件的支持&#xff0c;分别是cpolar&#xff08;用于搭建内网穿透数据隧道…

架构面试题汇总:mysql全解析(六)

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! MySQL面试题涵盖了索引优化、事务管理、并发控制以及存储格式等核心领域&#xff0c;旨在评估应聘者对数据库性能优化和数据一致性…

软件介绍-知网研学

知网研学 基本功能 功能特色&#xff1a; 1.高效检索和管理期刊论文、博硕士论文、会议论文、报纸、年鉴、网页内容等各类资源 2.已有题录与CNKI题录自动匹配&#xff0c;可一键更新&#xff0c;完善题录信息 3.阅读中可随手记录学习中的想法&#xff1b;对学科名词可随时查…

Dgraph 入门教程三《linux本地部署》

上一章中&#xff0c;我们用的官方的Clound操作的&#xff0c;怎么在本地部署一套Dgraph呢。这一章将做详细介绍。安装有好几种方式&#xff0c;最简单的就是联网部署。因为项目需要&#xff0c;这里先不介绍和测试线上部署了&#xff0c;只介绍离线部署。 1、下载安装包 Rel…

微信小程序仿QQ头像轮播效果

1、效果图 2、效果流程分析 1、第1个头像大小从1到0缩小的同时&#xff0c;第2个头像左移 2、上面动画结束后&#xff0c;延迟50ms&#xff0c;第3个头像从0到1放大 3、把头像列表顺序前移一位&#xff0c;并重置轮播状态&#xff0c;以此达到一个循环。然后继续第一个步骤 …

Stable Diffusion 详解

整体目标 文本生成图片&#xff1b;文本图片生成图片 网络结构 CLIP的文本编码器和图片生成器组成图像生成器&#xff0c;输入是噪声经过UNet得到图像特征&#xff0c;最后解码得到图像 前向扩散 模型直接预测图片难度比较大&#xff0c;所有让模型预测噪音然后输入-噪音…

Everything:文件查找工具,一搜即得

名人说&#xff1a;东边日出西边雨&#xff0c;道是无晴却有晴。——刘禹锡 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、软件介绍①Everything②核心功能③原理 二、下载安装①下载②安装 三、使用方法①文…

TRON Builder Tour 丹佛站活动获美联社等外媒高度评价

近日,波场TRON亮相ETH Denver大会并在期间成功举办TRON Builder Tour丹佛站活动,引发海外媒体热议。美联社、费加罗报、Cointelegraph等国际主流媒体及加密行业权威媒体均对此给予了高度评价,认为波场TRON在参会期间的表现及TRON Builder Tour活动的举办都展现了其坚定不移推动…

【大厂AI课学习笔记NO.74】人工智能产业技术架构

包括基础层、技术层和应用层。 人工智能的产业技术架构是一个多层次、多维度的复杂系统&#xff0c;它涵盖了从基础硬件和软件设施到高级算法和应用技术的全过程。这个架构通常可以分为三个主要层次&#xff1a;基础层、技术层和应用层。下面我将详细论述这三个层次及其细分内…

代码背后的女性:突破性别壁垒的技术先驱

个人主页&#xff1a;17_Kevin-CSDN博客 收录专栏&#xff1a;《程序人生》 引言 在计算机科学的历史长河中&#xff0c;有许多杰出的女性为这个领域的发展做出了重要贡献。她们不仅在技术上取得了卓越成就&#xff0c;还打破了性别壁垒&#xff0c;为后来的女性树立了榜样。今…