写点什么

官答|初始化 GreatSQL 报错无法找到数据目录或初始化数据字典失败

作者:GreatSQL
  • 2023-12-27
    福建
  • 本文字数:3073 字

    阅读完需:约 10 分钟

GreatSQL 推出新栏目——官答


官答栏目针对 GreatSQL 数据库中的问题,选取官方论坛和讨论群中的典型提问进行深入解答。内容涵盖数据库安装部署、配置优化、故障排查、性能测试等方面。


在文章中,我们不仅提供解决方案,还会结合实例深入剖析问题的成因,提升读者对 GreatSQL 数据库的理解能力。


如果你在管理、使用 GreatSQL 数据库时遇到棘手的技术难题,想系统地学习提高数据库技能,就来看看官答的文章吧。这里不仅可以找到可靠的解决方法,还能从中学习到数据库优化的经验和思路。


通过阅读官答的内容,可以全面地掌握 GreatSQL 数据库管理的技能,熟练应对各种故障情况。快来关注官答栏目,与我们一起成长!




本问题也是来自讨论群,用户使用的是 GreatSQL-8.0.32-24 版本数据库


  • GreatSQL-8.0.32-24-Linux-glibc2.28-x86_64-minimal.tar.xz


GreatSQL 是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。


用户提供错误日志如下


$ cat error.log 2023-10-27T11:18:22.862989+08:00 0 [Warning] [MY-011069] [Server] The syntax '--slave-rows-search-algorithms' is deprecated and will be removed in a future release.2023-10-27T11:18:22.863011+08:00 0 [Warning] [MY-011069] [Server] The syntax '--master-info-repository' is deprecated and will be removed in a future release.2023-10-27T11:18:22.863025+08:00 0 [Warning] [MY-011069] [Server] The syntax '--relay-log-info-repository' is deprecated and will be removed in a future release.2023-10-27T11:18:22.864851+08:00 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.2023-10-27T11:18:22.864949+08:00 0 [Note] [MY-010949] [Server] Basedir set to /usr/local/greatsql/.2023-10-27T11:18:22.864966+08:00 0 [System] [MY-010116] [Server] /usr/local/greatsql/bin/mysqld (mysqld 8.0.25) starting as process 946352023-10-27T11:18:22.876808+08:00 0 [Note] [MY-012366] [InnoDB] Using Linux native AIO2023-10-27T11:18:22.877183+08:00 0 [Note] [MY-010747] [Server] Plugin 'FEDERATED' is disabled.2023-10-27T11:18:22.880103+08:00 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.2023-10-27T11:18:22.880512+08:00 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.2023-10-27T11:18:22.880639+08:00 0 [ERROR] [MY-010119] [Server] Aborting2023-10-27T11:18:22.880688+08:00 0 [Note] [MY-010120] [Server] Binlog end2023-10-27T11:18:22.880931+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'MyISAM'2023-10-27T11:18:22.880972+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'InnoDB'2023-10-27T11:18:22.881011+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'CSV'2023-10-27T11:18:22.881047+08:00 0 [Note] [MY-010733] [Server] Shutting down plugin 'daemon_keyring_proxy_plugin'2023-10-27T11:18:22.881569+08:00 0 [System] [MY-010910] [Server] /usr/local/greatsql/bin/mysqld: Shutdown complete (mysqld 8.0.25)  MySQL Community Server - 
复制代码


用户采用初始化命令如下


$ /usr/local/greatsql/bin/mysqld --defaults-file=/etc/my.cnf -initialize --user=mysql --datadir /data/greatsql  --lower-case-table-names=1
复制代码


其实在这里就可以看出问题所在 :)

尝试解决

我们可以从以下几个方面进行检查,排查数据目录失效的原因:


  1. 检验数据目录/data/greatsql是否真实存在。

  2. 检查/data/greatsql目录的权限设置是否正确,避免因权限问题导致无法访问。

  3. 在 my.cnf 配置文件中核对 datadir 参数是否设置正确,不存在误指向其他目录的情况。

  4. 查看操作系统的存储空间是否充足。


经过仔细的排查验证,确认这些配置都是正确的,数据目录存在并且具有可访问权限,my.cnf 中的参数也没有错误。

集思广益

针对此问题,群友们积极提出了解决思路:


  • 首先,有用户建议去掉执行 sql 语句末尾的"--lower-case-table-names=1"参数,并尝试执行。但遗憾的是,删除该参数后问题仍然存在,没有得到解决。

  • 其次,另一位用户分析可能是 my.cnf 配置文件的默认参数干扰了 sql 语句,因此建议暂时改变 my.cnf 的文件名或注释默认调用配置,再执行 sql,看看是否能避开默认参数的影响。但是该建议未得到验证,预计执行结果也是相同的错误。


群友们提出的方法尚未奏效,那这件事情就很奇怪,到底是哪里出现了问题呢?

问题解决

其实我们再回头来看看初始化命令


$ /usr/local/greatsql/bin/mysqld --defaults-file=/etc/my.cnf -initialize --user=mysql --datadir /data/greatsql  --lower-case-table-names=1
复制代码


接着我们再来看看 GreatSQL 官方文档是怎么初始化的


※ 截取自 GreatSQL 官方手册 【Ubuntu 系统中安装 GreatSQL】➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/4-install-guide/3-2-ubuntu-install.md


$ mysqld --defaults-file=/etc/mysql/my.cnf --initialize-insecure --user=mysql
复制代码


眼尖的同学已注意到执行语句出现格式错误,initialize前缺少一个连接符"-",此处用户是复制粘贴它处的命令进行使用,在操作过程中不小心遗漏了一个字符,导致语法格式不正确,执行失败。


及时发现并添加上这个简单的连接符后,问题迎刃而解,语句成功执行。


可以看出,大多数问题的起因都是我们在操作过程中的一时疏忽或不留神造成的。正如这句话说得好:“大部分问题,都是粗心大意导致的”。


这个案例也提醒我们,在数据库开发和管理中,任何一个细节都不可忽视。应保持高度的专注和细致,检查每个步骤的语法和逻辑,以减少人为操作失误出现的可能。


这里建议大家采用 GreatSQL 提供的官方手册文档,按照流程进行安装部署。

GreatSQL 手册都是经过详细验证的,每个步骤都经历了测试,确保可靠性。遵循手册的安装方法,能够帮助用户顺利完成环境配置,避免踩坑。


我们 GreatSQL 提供了多种灵活的安装方式,可满足不同需求:


  • RPM 方式提供了便捷的包管理安装。

  • 二进制安装方式具有极强的跨平台兼容性,支持 CentOS、Ubuntu、OpenEuler、统信 UOS、龙蜥、麒麟等主流操作系统。

  • 源码编译方式可以全面自定义编译参数,适用于对性能和定制化要求极高的场景。

  • Ansible 安装自动化程度高,可以轻松实现大规模集群部署,以及 Docker 方式安装 GreatSQL 数据。


通过这些安装方式,GreatSQL 可以应对各种复杂的生产环境,无论是传统的物理机部署,还是新的虚拟化和容器化部署,手册都能助您快速上手,节省宝贵时间。


GreatSQL 安装手册➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/4-install-guide/0-install-guide.md

常规解决

这个错误通常是由于 GreatSQL 无法找到有效的数据目录导致的。可能的原因是在安装 GreatSQL 时指定了不正确的数据目录或者数据目录不可用,常规的解决方法就是:


1.确认 GreatSQL 目录是否存在


2.检查 GreatSQL 目录权限是否正常,通常确保是 MySQL 用户有该目录的权限


3.确保 GreatSQL 目录为空,因为初始化失败可能导致目录中还有数据,如果重新初始化要确保目录为空


4.如果 GreatSQL 目录不存在,可以尝试手动创建数据目录


5.如果 GreatSQL 目录存在但是不可用,可以尝试在指定另一个数据目录或重新安装 GreatSQL


如果以上方法都无法解决,那快到 GreatSQL 官网发个帖子吧➥https://greatsql.cn/forum-36-1.html


发布于: 刚刚阅读数: 4
用户头像

GreatSQL

关注

GreatSQL社区 2023-01-31 加入

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。 社区:https://greatsql.cn/ Gitee: https://gitee.com/GreatSQL/GreatSQL

评论

发布
暂无评论
官答|初始化GreatSQL报错无法找到数据目录或初始化数据字典失败_故障排查_GreatSQL_InfoQ写作社区