【问题标题】:Can't start MariaDB无法启动 MariaDB
【发布时间】:2017-10-30 14:59:51
【问题描述】:

本周末关闭服务器后,我无法启动 MariaDB。我在日志中看到了这一点:

171030 10:09:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
171030 10:09:18 [Note] /usr/sbin/mysqld (mysqld 5.5.45-MariaDB) starting as process 2583 ...
171030 10:09:18 InnoDB: The InnoDB memory heap is disabled
171030 10:09:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
171030 10:09:18 InnoDB: Compressed tables use zlib 1.2.3
171030 10:09:18 InnoDB: Using Linux native AIO
171030 10:09:18 InnoDB: Initializing buffer pool, size = 128.0M
171030 10:09:18 InnoDB: Completed initialization of buffer pool
171030 10:09:18  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: File name /var/lib/mysql//var/lib/mysql/ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
171030 10:09:18 mysqld_safe mysqld from pid file /var/lib/mysql/db05.pid ended

这看起来很有说服力:

InnoDB: File name /var/lib/mysql//var/lib/mysql/ibdata1

我不确定它是从哪里得到的。这是 my.cnf 文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# innodb_force_recovery = 4
lower_case_table_names = 1
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = /var/lib/mysql/ibdata1:3000M;/var/lib/mysql/ibdata2:586M:autoextend
transaction-isolation=READ-COMMITTED

innodb_log_buffer_size          = 32M
innodb_buffer_pool_size         = 3G
innodb_log_file_size            = 768M

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

我已经尝试添加显示的日志文件条目,并根据我看到的其他错误增加 innodb_data_file_path 参数中的 ibdata1 大小,我不再认为这些错误是相关的。

【问题讨论】:

  • 似乎 innodb_data_home_dir 在 innodb_data_file_path 属性中重复。
  • 你可能会在askubuntu.com得到答案

标签: mysql database mariadb


【解决方案1】:

显然,/var/lib/mysql 路径存在于您的 innodb_data_home_dir 设置中:

innodb_data_home_dir = /var/lib/mysql

但它也出现在 innodb_data_file_path 中。所以只要改变这个:

innodb_data_file_path = /var/lib/mysql/ibdata1:3000M;/var/lib/mysql/ibdata2:586M:autoextend

到这里:

innodb_data_file_path = ibdata1:3000M;ibdata2:586M:autoextend

【讨论】:

    【解决方案2】:

    您的服务器正在生成一个奇怪的路径名来设置ibdata1 容器文件。当它执行/var/lib/mysql//var/lib/mysql/ibdata1时,它正在执行Path/Path/Filename

    您可以尝试在my.cnf 中更改此行

    innodb_data_file_path = /var/lib/mysql/ibdata1:3000M;/var/lib/mysql/ibdata2:586M:autoextend
    

    到这里:

    innodb_data_file_path =  ibdata1:3000M;ibdata2:586M:autoextend
    

    如果这不起作用,请放回原始值。然后做

     px axuww | grep mysql 
    

    到一个 shell,并尝试确定您的 mysqld 服务器程序是否正在使用它不需要的额外路径变量运行。

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 2018-08-30
      • 1970-01-01
      • 2015-03-03
      • 2017-05-07
      • 2018-07-24
      • 2021-03-19
      • 2017-12-10
      • 1970-01-01
      相关资源
      最近更新 更多