MySQL安装初始化必须要指定的参数innodb-data-file-path和innodb-log-files-in-group

源码编译安装或者解压linux-glibc压缩包安装MySQL,在启动MySQL实例前,都有一步初始化mysqld server的过程,即“ mysql/bin/mysqld --initialize ”,除了“initialize”选项,还可以制定很多其他各种参数,参考https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html,或者在命令行执行mysqld --verbose --help。

在这一步初始化完成后,真正启动MySQL的时候,还可以在命令行指定这些参数,例如“ mysql/bin/mysqld_safe --user=mysql & ”。另外,更常规的做法是使用选项文件,Linux上的全局文件即“ /etc/my.cnf ”,可以将大量的自定义选项配置都写入选项文件,避免启动mysqld服务时命令后面跟一大堆参数。

但其中有两个跟InnoDB存储引擎文件相关的参数,innodb-log-files-in-group和innodb-data-file-path,如果在MySQL运行过程中使用默认值也无所谓,不涉及到自定义修改的情况,那么初始化的时候不做修改也可以;但是如果需要自定义修改,就需要在初始化的过程中就指定修改值,初始化完成后再在选项文件或者命令行启动时修改,就会造成启动失败或者数据库文件损坏。

错误日志里以下ERROR记录说明在MySQL安装已经初始化完成后再修改InnoDB表空间文件配置,故而产生冲突。

The innodb_system data file './ibdata1' is of a different size 768 pages (rounded down to MB) than the 65536 pages specified in the .cnf file!

这种情况下可以选择删掉所有的InnoDB表空间文件(默认一个:ibdata1)再重新启动,但也仅限于数据库还没有运行过,ibdata可以安全地delete。

错误日志里以下ERROR记录说明在MySQL安装已经初始化完成后再修改InnoDB事务日志 / 重做日志文件配置,故而产生冲突。

[ERROR] InnoDB: redo log file './ib_logfile0' exists. Creating system tablespace with existing redo log files is not recommended. Please delete     all redo log files before creating new system tablespace.

这种情况下,删除重做日志文件组(默认两个:ib_logfile0和ib_logfile1)虽然也可能启动成功,但对于已经运行中的业务库来说有可能丢失事务而破坏ACID;新安装的数据库则会破坏表结构的完整性,这时错误日志里可能会看到以下ERROR记录。

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist

因此,best practice是在数据库安装mysqld --initialize这一步时,完成对这两个参数innodb-data-file-path和innodb-log-files-in-group的修改,最好是设计一个面向业务的选项文件,直接初始化。

mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
percona-data-recovery-tool-for-innodb-0.5是一个由Percona公司提供的针对InnoDB存储引擎的数据恢复工具。它可以帮助用户在数据丢失或者损坏时恢复InnoDB数据库。 它的主要功能包括以下几个方面: 1. 支持数据恢复:当InnoDB数据库出现故障时,如数据库文件损坏、误删除数据等情况,该工具可以帮助用户恢复损坏的数据。它可以读取InnoDB存储引擎的日志文件,通过分析日志,找到丢失的数据更新,然后恢复数据。 2. 支持错误检测:该工具可以扫描InnoDB存储引擎的数据文件,检测出潜在的错误或损坏的数据页。通过识别和修复这些问题,可以帮助保障数据库的数据完整性和一致性。 3. 支持删选和修改数据:用户可以使用该工具针对InnoDB存储引擎中的数据进行删选和修改。通过设置过滤条件,用户可以选择指定类型的数据进行操作,如根据时间范围、特定字段的值等。 4. 支持日志文件处理:该工具可以解析和处理InnoDB存储引擎的日志文件,包括重做日志和撤销日志。用户可以使用它来查看、分析和恢复日志文件中的数据更新操作,以及进行相关的数据恢复操作。 总之,percona-data-recovery-tool-for-innodb-0.5是一款专门针对InnoDB存储引擎的数据恢复工具,它可以帮助用户在数据库出现故障时进行数据恢复,保障数据的完整性和可用性。这对于数据库管理员和开发者来说是非常重要的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值