【发布时间】:2019-01-22 14:59:58
【问题描述】:
我的硬盘崩溃导致 SQL 数据库出现一些问题。从那以后,我从备份中重建,但不断出现对我来说毫无意义的问题。希望它会在这里的人。我真的只是在寻找有关在哪里找到问题根源的帮助。我可以从那里修复。我已经阅读了数百篇文章,并在网上无休止地搜索了这篇文章。当然,有人可能会发布一个链接,其中包含我错过的答案。
服务器较旧,运行 CentOS 5 和 MySQL 5.0.77。我打算在解决此问题后升级。
该数据库同时具有 MyISAM 和 InnoDB 表。通过 phpmyadmin,我看到 InnoDB 没有运行。我检查了 my.cnf,没有任何迹象表明它没有运行,除非我遗漏了什么。
[mysqld]
innodb_file_per_table = 1
log-bin=/var/lib/mysql/
binlog-ignore-db=supp
server-id=5
#master-host=
#master-user=
#master-password=
#master-connect-retry=60
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
skip-name-resolve
relay-log=/data1/mysqld/mysqld-relay-bin
skip-slave
#set-variable = join_buffer_size=60M
set-variable = key_buffer=128M
set-variable = max_allowed_packet=30M
set-variable = table_cache=64
set-variable = sort_buffer=8M
set-variable = record_buffer=2M
set-variable = myisam_sort_buffer_size=8M
set-variable = thread_cache=4
set-variable = thread_concurrency=2
set-variable = max_connections=500
set-variable = wait_timeout=3600
#
# Uncomment the following if you are using BDB tables
#set-variable = bdb_cache_size=64M
# Point the following paths to different dedicated disks
tmpdir = /var/tmp/
#log-update = /path-to-dedicated-directory/hostname
innodb_data_home_dir=
innodb_data_file_path = /data1/ibdata/ibdata1:5000M;/data1/ibdata/ibdata2:5000M;/data1/ibdata/ibdata3:5000M;/data1/ibdata/ibdata4:5000M:autoextend
set-variable = innodb_buffer_pool_size=1G
set-variable = innodb_additional_mem_pool_size=5M
innodb_log_group_home_dir= /data1/iblogs
innodb_log_arch_dir = /data1/iblogs
set-variable = innodb_log_files_in_group=3
##
set-variable = innodb_log_file_size=100M
set-variable = innodb_log_buffer_size=16M
set-variable = innodb_file_io_threads=8
set-variable = innodb_lock_wait_timeout=100
set-variable = innodb_autoextend_increment=200
#
innodb_flush_log_at_trx_commit=0
innodb_log_archive=0
set-variable = innodb_lock_wait_timeout=100
#innodb_flush_method = O_DSYNC
[mysqldump]
quick
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash
#safe-updates # Remove the comment character if you are not familiar with SQL
[isamchk]
set-variable = key_buffer=2M
set-variable = sort_buffer=1M
set-variable = read_buffer=1M
set-variable = write_buffer=1M
[myisamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
在 phpmyadmin 中,所有 InnoDB 表都显示为“正在使用”并报告 1033 错误。当我创建一个新数据库并复制表时,会发生同样的事情。唯一可行的方法是从 sql 转储文件创建数据库,但这会创建旧数据,因为备份有点旧。新数据库包含所有 MyISAM 表并且它们可以工作,但从 CGI 文件中寻找数据时会出现一些语法错误。我现在可以解决这个问题。
我没有创建这台服务器,也从未管理过。我已经解决了许多问题,并且正在努力找人帮忙,但这很困难。我只要求有人指出我正确的方向。
什么会导致只有 InnoDB 表的信息不正确?我搜索了错误日志,它们报告的内容大致相同,出现大量“table.frm 中的信息不正确”错误。
为了尽可能简短,我将在此停止,但如果有必要,我很乐意解释更多。
mysqld 日志:
190122 12:45:02 mysqld started
190122 12:45:02 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
190122 12:45:02 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
InnoDB: No valid checkpoint found.
InnoDB: If this error appears when you are creating an InnoDB database,
InnoDB: the problem may be that during an earlier attempt you managed
InnoDB: to create the InnoDB data files, but log file creation failed.
InnoDB: If that is the case, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/error-creating-innodb.html
190122 12:45:03 [Warning] 'user' entry 'root@fmdb2' ignored in --skip-name-resolve mode.
190122 12:45:03 [Warning] 'user' entry 'leadtraffic@www.bravelcon.com' ignored in --skip-name-resolve mode.
190122 12:45:03 [Warning] 'db' entry 'leadtraffic leadtraffic@www.bravelcon.com' ignored in --skip-name-resolve mode.
190122 12:45:03 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
【问题讨论】:
-
32 位 MySQL 和/或操作系统?