| Bug #61700 | MySQL goes to improper state after starting when already running | ||
|---|---|---|---|
| Submitted: | 29 Jun 2011 18:50 | Modified: | 9 Aug 2011 19:36 |
| Reporter: | Veerabahu Subramanian | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S2 (Serious) |
| Version: | 5.5_10 | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysql start | ||
[4 Jul 2011 9:58]
Veerabahu Subramanian
There is no way to stop user of our application to do "/etc/init.d/mysql start". So when user does the same, mysql goes to improper state and thereby our application too. After this development need to get involved to restore the state of MySQL and our application back. As this is more often seen, request of for a quick fix / atleast workaround.
[5 Jul 2011 17:03]
Valeriy Kravchuk
Check Bug #23790. Looks like a duplicate/closely related bug.
[5 Aug 2011 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[6 Aug 2011 5:34]
Veerabahu Subramanian
Yes the issues seems to be related to #23790. However, the issue #23790 is filed in Version 5.0 but I am observing the issue in 5.5. Can you clarify is the issue resolved in 5.5 also.
[9 Aug 2011 19:36]
Sveta Smirnova
Thank you for the feedback. Bug #23790 in "Verified" state. This means bug was confirmed internally and will be fixed in future versions. currently it is not fixed. So closing this bug as duplicate of bug #23790

Description: Giving /etc/init.d/mysql start when mysql is already started ends up in mysql going to some improper state. Following log statements are observed in error.log { { InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoDB data or log files. InnoDB: Unable to lock ./ibdata1, error: 11 InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoDB data or log files. 110624 23:56:49 InnoDB: Unable to open the first data file InnoDB: Error in opening ./ibdata1 110624 23:56:49 InnoDB: Operating system error number 11 in a file operation. InnoDB: Error number 11 means 'Resource temporarily unavailable'. InnoDB: Some operating system error numbers are described at InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html 110624 23:56:49 InnoDB: Could not open or create data files. 110624 23:56:49 InnoDB: If you tried to add new data files, and it failed here, 110624 23:56:49 InnoDB: you should now edit innodb_data_file_path in my.cnf back 110624 23:56:49 InnoDB: to what it was, and remove the new ibdata files InnoDB created 110624 23:56:49 InnoDB: in this failed attempt. InnoDB only wrote those files full of 110624 23:56:49 InnoDB: zeros, but did not yet use them in any way. But be careful: do not 110624 23:56:49 InnoDB: remove old data files which contain your precious data! 110624 23:56:49 [ERROR] Plugin 'InnoDB' init function returned error. 110624 23:56:49 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 110624 23:56:49 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use 110624 23:56:49 [ERROR] Do you already have another mysqld server running on port: 3306 ? 110624 23:56:49 [ERROR] Aborting 110624 23:56:49 [Note] /usr/sbin/mysqld: Shutdown complete 110624 23:56:49 mysqld_safe mysqld from pid file /var/lib/mysql/Veerabahu.pid ended } Though the error message seems obvious. Confusion is why MySQL is trying to start when it is already started and goes to such a state ? } Environment tested :- RHEL 5 update 4 (64 bit) and RHEL 4 update 5 (32 bit) 5.5.10-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial) and corresponding 32 bit version How to repeat: Start MySQL :- [veechand@Veerabahu ~]$ sudo /etc/init.d/mysql start Starting MySQL.. [ OK ] See MySQL status :- [veechand@Veerabahu ~]$ sudo /etc/init.d/mysql status MySQL running (16322) [ OK ] Start MySQL again :- [veechand@Veerabahu ~]$ sudo /etc/init.d/mysql start Starting MySQL [ OK ] Now see MySQL status :- [veechand@Veerabahu ~]$ sudo /etc/init.d/mysql status /etc/init.d/mysql: line 363: test: 16948: binary operator expected MySQL is running but PID file could not be found [FAILED] Suggested fix: To avoid this, can MySQL startup script (mysql) be changed to check for status before starting.