『壹』 怎麼解決mysql服務無法啟動的問題
1、情況一:MySQL的錯誤日誌文件(安裝目錄\MYOA\data5\機器名.err)會記錄如下內容:
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Error: trying to add tablespace 460 of name '.\td_oa\flow_data_35.ibd'
InnoDB: to the tablespace memory cache, but tablespace
InnoDB: 460 of name '.\td_oa\exam_data.ibd' already exists in the tablespace
解決方法:
1)剪切出安裝目錄\MYOA\data5\TD_OA的flow_data_35.ibd和flow_data_35.frm兩個文件;
2)啟動MySQL5_OA服務,使用備份的flow_data_35.sql導入到TD_OA庫中。如果提示flow_data_35表已經存在不能導入,則繼續按後續步驟執行;
3)在data5下手動建立tmp目錄;
4)使用MySQL管理工具或MySQL命令行程序在tmp下建立名稱為flow_data_35的表(包含一個欄位即可);
5)將tmp下的flow_data_35.frm和flow_data_35.ibd拷貝到安裝目錄\MYOA\data5\TD_OA目錄下;
6)在MySQL管理工具或MySQL命令行程序中,進入TD_OA庫,使用「drop table flow_data_35;」命令清除公共表空間中殘留的flow_data_35表的相關信息;
7)進入tmp庫,刪掉flow_data_35表;
8)使用備份的flow_data_35.sql導入到TD_OA庫中;
9)如果還有其他表存在該問題,可重復執行4至8步驟。
2、情況二:MySQL的錯誤日誌文件(安裝目錄\MYOA\data5\機器名.err)會記錄如下內容:
130409 15:54:31 [Note] Plugin 'FEDERATED' is disabled.
130409 15:54:31 InnoDB: The InnoDB memory heap is disabled
130409 15:54:31 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130409 15:54:31 InnoDB: Compressed tables use zlib 1.2.3
130409 15:54:32 InnoDB: Initializing buffer pool, size = 1023.0M
InnoDB: VirtualAlloc(1086849024 bytes) failed; Windows error 8
130409 15:54:32 InnoDB: Completed initialization of buffer pool
130409 15:54:32 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130409 15:54:32 [ERROR] Plugin 'InnoDB' init function returned error.
130409 15:54:32 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130409 15:54:32 [ERROR] Unknown/unsupported storage engine: Innodb
130409 15:54:32 [ERROR] Aborting
解決方法:
此情況出現的原因是myoa\mysql5\my.ini中innodb_buffer_pool_size的值太大,OA伺服器操作系統不支持所致。改小後再啟動mysql5_OA服務即可,一般保持和資料庫大小一致。資料庫大小即是myoa/data5的大小。
3、情況三:mysql服務啟動不了,事件查看器中顯示:The syntax '--log-slow-queries' is deprecated and will be removed in a future release. Please use '--slow-query-log'/'--slow-query-log-file' instead.
解決方法:安裝目錄\MYOA\data5下的ibdata1、ib_logfile0、ib_logfile1文件屬性被設置為只讀導致,取消只讀控制,重啟mysql5_OA服務即可。
4、情況四:MySQL的錯誤日誌文件(data5\機器名.err)會記錄如下內容:InnoDB: No valid checkpoint found.
解決方法:此問題找不到檢查點,資料庫是無效的,此種情況,只能用熱備份數據恢復。
5、以上四種情況,是2013版OA系統目前比較常見的mysql服務啟動不了的現象和解決辦法,大家可作參考,其他情況的話,再具體分析處理。
6、分析思路總結:遇到mysql5_OA服務啟動不了的情況,首先查看myoa\data5下的錯誤日誌文件,根據日誌中的具體內容進行具體分析。
7、2013版MYSQL服務啟動不了(可以嘗試強制啟動mysql服務)方法如下:
1)打開\MYOA\mysql5\my.ini,去掉innodb_force_recovery=1前邊的注釋。
2)啟動MySQL5_OA服務,此時MySQL處於只讀狀態,可以導出,不可寫入。如果仍不能啟動,可以嘗試將innodb_force_recovery修改為2、3、4、5、6等,直到可以啟動為止。
3)使用MySQL管理工具,將TD_OA等相關的資料庫導出為SQL文件。
4)停止MySQL5_OA服務,刪除TD_OA下的所有文件、ibdata1、ib_logfile0、ib_logfile1等文件。
5)打開\MYOA\mysql5\my.ini,在innodb_force_recovery=1前邊加上#號,將該項注釋掉。
6)啟動MySQL5_OA服務,然後導入此前備份的SQL文件。
7)檢查資料庫,將無法通過該方法恢復的數據表,通過之前自動備份的SQL文件進行恢復。
『貳』 mysql 重啟命令
mysql 重啟命令一般是指服務的重啟。
先停掉mysql服務,
win+R 輸入cmd
dos窗口輸入命令行:net stop mysql
等服務停掉後,再輸入命令:net start mysql
如圖,
mysql服務停止與啟動
『叄』 #1045 無法登錄 MySQL 伺服器
解決辦法是重新設置root用戶密碼,在Windows平台下操作步驟如下:
1、以系統管理員身份登錄到系統;
2、如果MySQL伺服器正在運行,停止它。
如果是作為Windows服務運行的伺服器,進入服務管理器:開始菜單->控制面板->管理工具->服務
如果伺服器不是作為服務而運行的,可能需要使用任務管理器來強制停止它。
3、創建1個文本文件,並將下述命令置於單一行中:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
用任意名稱保存該文件。在本例中,該文件為C:\mysql-init.txt。
4、進入DOS命令提示:開始菜單->運行-> cmd
假定你已將MySQL安裝到C:\mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應的調整。
在DOS命令提示符下,執行命令:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
在伺服器啟動時,執行由「--init-file」選項(作用:在啟動時從指定的文件中讀取SQL命令)命名的文件的內容,更改根用戶密碼。當伺服器成功啟動後,應刪除C:\mysql-init.txt。
5、停止MySQL伺服器,然後在正常模式下重啟它。如果以服務方式運行伺服器,應從Windows服務窗口啟動它。如果以手動方式啟動了伺服器,能夠像正常情形下一樣使用命令。
附:
其他方法
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(』newpassword』) where USER=』root』;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]節提供的用戶名和密碼:
# mysql -udebian-sys-maint -p
Enter password: <輸入[client]節的密碼>
mysql> UPDATE user SET Password=PASSWORD(』newpassword』) where USER=』root』;
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql>
另一個方法
Windows:
1. 管理員登陸系統,停止mysql服務或者結束mysqld-nt進程
2. 進入命令行,來到mysql的安裝目錄.假設安裝目錄為 d:\mysql\ , CMD進入命令行
3. 運行 d:\mysql\bin\mysqld-nt --skip-grant-tables 啟動mysql,關閉許可權的檢查
4. 運行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重設root密碼
5. 重新啟動mysql服務