如何解決MySQL 開動不到的問題 MySQL start fail

昨天在服務器搬遷時遇到問題, 就是搬遷後, Mysql Start Fail – MySQL 資料庫不能開始. 找了很久都沒有答案, 檢查程序如下以下的例子都是在 Ubuntu 下執行, 最後就是我的解決方法檢查MySQL 的設定檔Sudo vi /etc/mysql/my.cnf[client]port = 3306socket = /var/run/mysqld/mysqld.sock[client]port = 3306socket = /var/run/mysqld/mysqld.sock# This was formally known as [safe_mysqld]. Both versions are currently parsed.[mysqld_safe]socket = /var/run/mysqld/mysqld.socknice = 0[mysqld]user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysql # 確定 folder 是否存在tmpdir = /tmplanguage = /usr/share/mysql/englishskip-external-lockingbind-address = 127.0.0.1# 如果這裡是其他 ip 地址, 有可能造成 MySQL start failkey_buffer = 16Mmax_allowed_packet = 16Mthread_stack = 128Kthread_cache_size = 8query_cache_limit = 1Mquery_cache_size = 16Mlog_bin = /var/log/mysql/mysql-bin.log# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!expire_logs_days = 10max_binlog_size = 100Mskip-bdb[mysqldump]quickquote-namesmax_allowed_packet = 16M[mysql]#no-auto-rehash # faster start of mysql but no tab completition[isamchk]key_buffer = 16M!includedir /etc/mysql/conf.d/檢查MySQL 資料夾的權限權限分別為keithyau@Yubis-production:/var/lib$ sudo ls -l /var/lib/mysqltotal 20612-rw-r–r– 1 root root 0 2008-03-16 22:01 debian-5.0.flagdrwx—— 2 mysql mysql 12288 2008-08-16 02:29 drupal-rw-rw—- 1 mysql mysql 10485760 2009-02-26 21:00 ibdata1-rw-rw—- 1 mysql mysql 5242880 2009-02-26 21:08 ib_logfile0-rw-rw—- 1 mysql mysql 5242880 2008-03-16 22:01 ib_logfile1drwxr-xr-x 2 mysql root 4096 2002-01-13 17:16 mysql-rw——- 1 root root 6 2008-03-16 22:01 mysql_upgrade_infokeithyau@Yubis-production:/var/lib$ sudo ls -l /var/libtotal 176drwxr-xr-x 4 root root 4096 2008-03-14 20:39 aptdrwxr-xr-x 2 root root 4096 2008-03-14 20:41 aptitudedrwxr-xr-x 2 root root 4096 2002-01-26 19:48 dhcp3drwxr-xr-x 4 root root 4096 2008-03-14 20:52 dictionaries-commondrwxr-xr-x 2 root root 4096 2006-10-24 03:27 discoverdrwxr-xr-x 7 root root 4096 2009-02-26 20:45 dpkgdrwxr-xr-x 3 root root 4096 2008-03-14 20:53 gstreamerdrwxr-xr-x 2 root root 4096 2008-03-14 20:39 initramfs-toolsdrwxr-xr-x 2 root root 4096 2007-01-31 06:27 initscriptsdrwxr-xr-x 2 root root 4096 2009-02-26 19:17 lib_mysqldrwxr-xr-x 2 root root 4096 2008-03-14 22:32 logrotatedrwxr-xr-x 6 root root 4096 2009-01-03 14:12 menu-xdgdrwxr-xr-x 2 root root 4096 2006-10-28 22:06 miscdrwxr-xr-x 10 mysql mysql 4096 2009-02-26 21:08 mysqldrwxr-xr-x 2 root root 4096 2008-01-27 19:46 mysql-cluster檢查後依然不能開始MySQL 服務器 ……打開 /var/log/syslog 看看有沒有以下一行Feb 26 20:45:59 Yubis-production /etc/init.d/mysql[6254]: ^G/usr/bin/mysqladmin: connect to server at ‘localhost’ failedFeb 26 20:45:59 Yubis-production /etc/init.d/mysql[6254]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’Feb 26 20:45:59 Yubis-production /etc/init.d/mysql[6254]: Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!Feb 26 20:45:59 Yubis-production /etc/init.d/mysql[6254]:Feb 26 20:46:04 Yubis-production mysqld_safe[6319]: startedFeb 26 20:46:04 Yubis-production mysqld[6328]: 090226 20:46:04 InnoDB: Started; log sequence number 0 43665Feb 26 20:46:04 Yubis-production mysqld[6328]: 090226 20:46:04 [ERROR] Binlog has bad magic number; It’s not a binary log file that can be used by this version of MySQL如果存在的話, 應該是你的 MySQL 服務器沒有正常關上, 那就 …打開 /var/log/mysqlkeithyau@Yubis-production:/var/lib$ sudo ls -l /var/log/mysql/total 295696-rw-rw—- 1 mysql adm 104885450 2009-02-18 12:36 mysql-bin.000077-rw-rw—- 1 mysql adm 105175310 2009-02-24 11:27 mysql-bin.000078-rw-rw—- 1 mysql adm 83164522 2009-02-26 19:24 mysql-bin.000079-rw-rw—- 1 mysql adm 98 2009-02-26 19:56 mysql-bin.000080-rw-rw—- 1 mysql adm 9233377 2009-02-27 16:10 mysql-bin.000081-rw-rw—- 1 mysql adm 160 2009-02-26 21:08 mysql-bin.index把最後一個 bin 檔案刪除sudo rm /var/log/mysql/mysql-bin.00081再打開 mysql-bin.index 把最後一行刪除sudo vi /var/log/mysql/mysql-bin.index/var/log/mysql/mysql-bin.000077/var/log/mysql/mysql-bin.000078/var/log/mysql/mysql-bin.000079/var/log/mysql/mysql-bin.000080/var/log/mysql/mysql-bin.000081重新打開 MySQL 資料庫就完成了Sudo /etc/init.d/mysql restart

1206, No. 1388 New Jinqiao Road, Jinqiao district, Shanghai, China
General Enquiry: info@yubis.net
Website: http://www.yubis.net