首页 > 数据库 >mysql8.0大小写的坑

mysql8.0大小写的坑

时间:2024-01-04 15:33:16浏览次数:41  
标签:8.0 00 08 Server el8 大小写 Entrypoint mysql8.0

这两天又被mysql8.0大小写的问题坑到了,看下面的报错:
chown: cannot access './proc/38/fd/6': No such file or directory
chown: cannot access './proc/38/fd/7': No such file or directory
chown: cannot access './proc/38/fdinfo/4': No such file or directory
chown: cannot access './proc/38/fdinfo/5': No such file or directory
chown: cannot access './proc/38/fdinfo/6': No such file or directory
chown: cannot access './proc/38/fdinfo/7': No such file or directory
chown: changing ownership of './sys/fs/bpf': Operation not permitted
chown: changing ownership of './sys/fs/pstore': Operation not permitted
chown: changing ownership of './sys/kernel/debug': Operation not permitted
chown: changing ownership of './sys/kernel/config': Operation not permitted
chown: changing ownership of './sys/kernel/security': Operation not permitted

由于我使用的是容器,在docker logs mysql的时候就不断刷出这些信息,使用

docker logs mysql |tee -a mysql.log

将命令重定向到本地文件,打开日志文件查看只有这些信息

2024-01-03 09:46:07+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:47:08+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:48:09+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:49:09+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:50:10+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:51:11+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:52:12+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:53:13+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:54:14+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:55:15+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:56:16+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 09:57:16+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2024-01-03 10:00:49+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started

问一位大佬他说可能是容器的docker-entrypoint.sh文件有问题,于是

docker cp mysql:/usr/bin/docker-entrypoint.sh

将这个文件拷到本地 image.png 看到打印的日志只打印到Entrypoint script for MySQL Server 8.0.30-1.el8 started,所以认为从这开始有问题,于是继续使用mysql_note打印剩下的脚本部分 自行添加了以下3行打印 image.png 发现他能打印前面2行 image.png 到第三行不能打印,说明这个函数有问题了,又继续查看这个函数问题 image.png 大佬怀疑是id -u这个命令有问题导致容器不能执行,退出了,于是又打印id -u发出也没有问题,后面我干脆直接不怀疑这个问题了,因为mysql8.0.28容器能启动,我把镜像换成8.0.35的时候就不能启动了,说明应该不是这个脚本的问题,再说我也把这2个容器的这个脚本拿下来对比了内容一样。后来有别的事,这个事暂时不研究了。 以上说的是昨天我想从mysql8.0.28升级到8.0.35出现的问题以及排查过程。今天我干脆换回8.0.28他也出现了这样的问题,有点奇葩。我怀疑可能是my.cnf文件出问题了,我干脆用默认的my.cnf文件启动,果然没有问题,那么问题就出现在my.cnf文件。大佬又说用二分法分别一次注释掉一半的配置内容。经过好久的不断注释和重启的过程终于发现了还是lower_case_table_names这个参数的问题。之前就被他坑过一次,mysql自从8版本以后默认这个值为0也就是区别大小写,但是我们需要设置为1不区分大小写。那么昨天为什么换回mysql8.0.28的时候他就能启动呢?应该是原来我就是设置为1,换成8.0.35的时候他有可能要重新验证一次,在读取这个配置的时候和他默认的字典的值0不一样他就报错了。而且 他报错的chown: changing ownership of './sys/kernel/debug': Operation not permitted是因为这儿还有一个坑,初始安装的时候这个my.cnf文件如果权限不为644,那么你修改这个lower_case_table_names值的时候他会检查权限,如果你的权限不为644他就不能修改,换句话说他日志会给你提示报错

2023-12-28T14:25:48.780677+08:00 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dict
ionary ('0')

但是问题是我之前遇到过所以我的my.cnf的权限早就改成644了,那为何他从8.0.28升到8.0.35的时候他又会提示权限问题这个我至今不懂。 无论你是想将值从0改为1或者从1改为0他都会有这个报错,尤其是你已经安装过,你再想修改这个值很大可能性会报错,这时候你只能将数据库导出来,重新安装,再导入数据。 结论是:mysql8的my.cnf权限你最好在安装前就设置为644,并且lower_case_table_names这个值你在安装前就要设置好,安装后你再想设置就会报错了。

标签:8.0,00,08,Server,el8,大小写,Entrypoint,mysql8.0
From: https://blog.51cto.com/riverxyz/9101761

相关文章

  • mysql8.0存储函数
    4、存储函数的使用4.1、语法分析学过的函数:LENGTH、SUBSTR、CONCAT等语法格式CREATEFUNCTION函数名(参数名参数类型,...)RETURNS返回值类型[characteristics...]BEGIN函数体#函数体中肯定有RETURN语句END说明:1、参数列表:指定参数为IN、OUT或INOUT只对PROCE......
  • mysql8.0存储过程
    1、存储过程概述1.1、理解含义:存储过程的英文是StoredProcedure。它的思想很简单,就是一组经过预先编译的SQL语句的封装。执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL......
  • MySQL8.0 OCP 103
    Choosethree.Whichthreerequirementsmustbeenabledforgroupreplication?对于组复制,必须启用哪些三个要求?A)replicationfiltersB)semi-syncreplicationpluginC)slaveupdateslogging更新日志记录D)binarylogchecksumE)primarykeyorprimarykeyequ......
  • mysql8.0 OCP 105
    105、Choosefour.YoumuststoreconnectionparametersforconnectingaLinux-basedMySQLclienttoaremoteWindows-basedMySQLserverlisteningonport3309.您必须存储连接参数,以便将基于linux的MySQL客户端连接到侦听端口3309的基于Windows的远程MySQL服务器。Wh......
  • ubuntu18离线安装mysql8.0
    参考文档Ubuntu中使用apt下载离线包以及相关依赖包-厚礼蝎-博客园(cnblogs.com)ubuntu18.04安装mysql8.0详细教程及踩坑解决方法(包含删除Mysql5.7版本方法)_ubuntu编译安装mysql-CSDN博客如何配置MySQL8中的lower_case_table_names来让其忽略大小写?–就是这个范儿(thi......
  • MySQL8.0 OCP 70题
    Choosetwo.WhichtwoMySQLServeraccountsarelockedbydefault?默认情况哪两个MySQLServer帐户被锁定?A)anynewROLEaccounts任何新的角色帐户B)anyinternalsystemaccounts任何内部系统帐户C)anyusercreatedwithausername,butmissingthehostnameD......
  • MySQL8.0 OCP 34
    Choosefour.WhichfouraretypesofinformationstoredintheMySQLdatadictionary?MySQL数据字典中存储的哪四种信息类型?A)serverruntimeconfigurationB)serverconfigurationrollbackC)performancemetricsD)storedproceduredefinitions存储过程定义E)I......
  • 源码编译安装mysql8.0
    下载源码源码下载地址:https://dev.mysql.com/downloads/mysql/找到对应版本进行下载上传至服务器编译安装使用cmake命令进行安装cdmysql-8.0.35mkdirbldcdbldcmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DDOWNLOAD_BOOST=1-DWITH_BOOST=/usr/local/boost..安......
  • 基于Docker搭建 Mysql8.0 主从架构
    创建主从数据库文件夹mkdir-p/usr/local/mysql/master1/confmkdir-p/usr/local/mysql/master1/datamkdir-p/usr/local/mysql/slave1/confmkdir-p/usr/local/mysql/slave1/data初始化主数据库配置文件cd/usr/local/mysql/master1/confvimy.cnf-----------------......
  • MySQL8.0在Ubuntu系统安装
    目录前言一、Mysql是什么?二、安装步骤1.安装操作需root权限:2.更新apt仓库信息3.查询库中mysql版本3.安装mysql4.启动MySQL5.登陆MySQL设置密码6.设置密码7.退出MySQL控制台8.对MySQL进行初始化1.输入密码:2.是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(本......