网站运行一段时间,突然连不上数据库了,重启数据库,网站又正常了!请问是什么原因呢?
以下是错误日子内容:
160423 00:45:59 mysqld_safe Number of processes running now: 0
160423 00:45:59 mysqld_safe mysqld restarted
160423 0:46:10 InnoDB: Initializing buffer pool, size = 8.0M
160423 0:46:10 InnoDB: Completed initialization of buffer pool
InnoDB: Error: pthread_create returned 11
160423 00:46:11 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
160423 02:19:52 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
160423 2:19:52 InnoDB: Initializing buffer pool, size = 8.0M
160423 2:19:52 InnoDB: Completed initialization of buffer pool
InnoDB: Log scan progressed past the checkpoint lsn 0 4483638
160423 2:19:52 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 4483853
160423 2:19:52 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
160423 2:19:53 InnoDB: Started; log sequence number 0 4483853
160423 2:19:53 [Note] Event Scheduler: Loaded 0 events
160423 2:19:53 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
160423 22:23:09 mysqld_safe Number of processes running now: 0
160423 22:23:09 mysqld_safe mysqld restarted
160423 22:23:09 InnoDB: Initializing buffer pool, size = 8.0M
160423 22:23:09 InnoDB: Completed initialization of buffer pool
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
160423 22:23:09 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
160423 22:23:10 InnoDB: Started; log sequence number 0 4484975
160423 22:23:10 [Note] Event Scheduler: Loaded 0 events
160423 22:23:10 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
160423 22:23:20 mysqld_safe Number of processes running now: 0
160423 22:23:20 mysqld_safe mysqld restarted
160423 22:24:45 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
160423 23:39:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
160423 23:39:13 InnoDB: Initializing buffer pool, size = 8.0M
160423 23:39:13 InnoDB: Completed initialization of buffer pool
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
160423 23:39:13 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
160423 23:39:14 InnoDB: Started; log sequence number 0 4484975
160423 23:39:14 [Note] Event Scheduler: Loaded 0 events
160423 23:39:14 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.73' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
From the log, the error reported is this
InnoDB: Error: pthread_create returned 11
, which is stackoverflow, and the stack size limit needs to be increased.ulimit -s
Check the stack size limit. On my personal PC it is 8192 (KB),ulimit -s n
sets the stack size limit,ulimit -s unlimited
sets an unlimited limit (not recommended, but can be used to verify whether this is the reason).Settings only take effect for the current session. Persistence can add settings to
/etc/profile
.If you don’t communicate with the database for a long time, it will be automatically disconnected. Try changing the database connection to stay connected