gpt4 book ai didi

mysql - 错误/usr/libexec/mysqld : Incorrect information in file

转载 作者:行者123 更新时间:2023-11-29 16:29:07 26 4
gpt4 key购买 nike

我在重新启动和其他一些减速问题后看到此错误。 MYSQL 不断重新启动,我认为这意味着 InnoDB 正在恢复,尽管我对这个过程还不够熟悉,无法确定。我正在运行 CentOS 6 并看到了这个:

InnoDB: Apply batch completed
InnoDB: In a MySQL replication slave the last master binlog file
InnoDB: position 0 256214410, file name mysqld-bin.000003
InnoDB: Last MySQL binlog file position 0 390069474, file name /var/lib/mysql/.000105
190105 17:11:09 InnoDB: Started; log sequence number 91 3960852448
InnoDB: Starting in background the rollback of uncommitted transactions
190105 17:11:09 InnoDB: Rolling back trx with id 0 3103647860, 655 rows to undo
190105 17:11:09 [ERROR] /usr/libexec/mysqld: Incorrect information in file: './empire/member_list.frm'
190105 17:11:09 [ERROR] /usr/libexec/mysqld: Incorrect information in file: './empire/member_list.frm'
190105 17:11:09 [Note] Recovering after a crash using /var/lib/mysql/
190105 17:11:09 [Note] Starting crash recovery...
190105 17:11:09 [Note] Crash recovery finished.
190105 17:11:09 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
190105 17:11:09 [ERROR] Do you already have another mysqld server running on port: 3306 ?
190105 17:11:09 [ERROR] Aborting

190105 17:11:09 InnoDB: Starting shutdown...
190105 17:11:09 [ERROR] /usr/libexec/mysqld: Incorrect information in file:

这是 my.cnf 文件的样子:

 The MySQL server
[mysqld]
innodb_file_per_table = 1
log-bin=/var/lib/mysql/
#binlog-do-db=leadtraffic
#binlog-do-db=fullemedia
binlog-ignore-db=supp
server-id=5
#master-host=XXX
#master-user=XXX
#master-password=XXX
#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

#
#replicate-ignore-table=dreamdirect.member_list_old
#replicate-ignore-table=dreamdirect.realtime_info
#replicate-ignore-table=dreamdirect.realtime_info1
#replicate-ignore-table=dreamdirect.realtime_info2
#replicate-ignore-table=dreamdirect.camp_realtime_info
#replicate-ignore-table=fullemedia.realtime_info
#replicate-ignore-table=fullemedia.realtime_info1
#replicate-ignore-table=fullemedia.realtime_info2
#replicate-ignore-table=test.*
#replicate-ignore-table=test.md5supp

# 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

这是否可能是一个缓冲区问题,它不断从数据文件中获取旧数据?这是新手的猜测。

最佳答案

这是最相关的线索:

190105 17:11:09 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
190105 17:11:09 [ERROR] Do you already have another mysqld server running on port: 3306 ?
190105 17:11:09 [ERROR] Aborting

它告诉您另一个守护进程已经在使用端口 3306。一次只有一个进程可以监听给定端口,因此当您尝试启动 mysqld 时,它无法绑定(bind)到该端口,并且会关闭.

这很可能是另一个已经在运行的 mysqld 实例。您可以使用 ps -elw | grep mysqld 来确认这一点。

在按照您尝试的方式启动 mysql 服务器之前,您需要确保所有其他实例都已关闭。如果所有其他方法都失败,您可能必须使用 kill -9 来执行此操作,并确保也关闭启动器 mysqld_safe(如果有一个正在运行),或者否则它只会重新启动 mysqld 进程。

<小时/>

您看到的关于“文件中的信息不正确”的另一个错误表明您的表定义之一已损坏 - empire.member_list 的表定义。这不足以阻止 mysqld 启动,但您将无法使用该表。

如果您的表使用 MyISAM、ARCHIVE 或 CSV 引擎,您可以尝试 REPAIR TABLE (请阅读文档,我不是来输入已经存在的文档的)。

如果您的表是 InnoDB,或者由于某种原因修复不起作用,请从最近的备份中恢复您的表。

如果您没有备份,那么请将其视为一次学习经历。您应该养成备份的习惯。

关于mysql - 错误/usr/libexec/mysqld : Incorrect information in file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54056859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com