xampp啓動時顯示的錯誤爲:mysql
9:52:41 [Apache] Attempting to start Apache app...sql
9:52:41 [Apache] Status change detected: running
9:52:42 [Apache] Status change detected: stopped
9:52:42 [Apache] Error: Apache shutdown unexpectedly.
9:52:42 [Apache] This may be due to a blocked port, missing dependencies,
9:52:42 [Apache] improper privileges, a crash, or a shutdown by another method.
9:52:42 [Apache] Check the "/xampp/apache/logs/error.log" file數據庫
9:52:42 [Apache] and the Windows Event Viewer for more cluesapache
這個問題比較常見, 一般是80、443端口被佔用
cmd 經過運行apache/bin/httpd.exe 打印以下log: 網絡
(OS 10048)一般每一個套接字地址(協議/網絡地址/端口)只容許使用一次。 : make_sock: could not bind to address 0.0.0.0:443
或者後面是80端口被佔用app
(OS 10048)一般每一個套接字地址(協議/網絡地址/端口)只容許使用一次。 : make_sock: could not bind to address 0.0.0.0:80 或[ : : ]:80 post
1.一、443端口被佔用,apache沒法監聽443端口,該如何解決呢? this
在/xampp/apache/conf/extra/httpd-ssl.conf spa
把Listen 443 修改成 444(可自定義)命令行
1.二、80端口被佔用,apache沒法監聽80端口,該如何解決呢?
在/xampp/apache/conf/extra/httpd.conf
把Listen 80 修改成 88 (可自定義)
若是配置了vhosts的話請把httpd-vhosts.conf 中端口改成88(同上端口號)
1. 經過cmd中netstat -ano 看看本機80、 443端口被佔用沒 ----- --這裏 可能會被其餘程序佔用如iis、虛擬機等
2.經過cmd中打印tasklist,查找佔用80、443端口的進程名稱。
3.taskkill /pid 端口號 殺掉此進程名稱,XAMPP重啓apache便可。
綜上所述第一種方法推薦使用,第二種每次啓動都或多或少的再次遇到。
在使用數據庫後,退出數據庫,再次登陸,可能會產生下面一種狀況
XAMPP – MySQL shutdown unexpectedly
14:39:04 [mysql] Status change detected: running
14:39:05 [mysql] Status change detected: stopped
14:39:05 [mysql] Error: MySQL shutdown unexpectedly.
14:39:05 [mysql] This may be due to a blocked port, missing dependencies,
14:39:05 [mysql] improper privileges, a crash, or a shutdown by another method.
14:39:05 [mysql] Press the Logs button to view error logs and check
14:39:05 [mysql] the Windows Event Viewer for more clues
14:39:05 [mysql] If you need more help, copy and post this
14:39:05 [mysql] entire log window on the forums
(大致的意思就是意外中止 具體記不太清了 等有機會截圖上來)
個人解決方法有三種:
可是這個文件夾是用來存儲真實的數據庫數據的,若是刪掉就至關於刪掉了數據庫,並且每次對數據庫進行操做後,該表會從新生成。
因此嘗試將該文件轉移到另外一個位置
而該文件的生成路徑是由配置文件中設置的
最終,按下面方法解決了
在mysql的配置文件C:\xampp\mysql\bin\my.ini中,將如下幾行改掉:
innodb_data_home_dir = "/xampp/mysql/data"
innodb_log_group_home_dir = "/xampp/mysql/data"
#innodb_log_arch_dir = "/xampp/mysql/data"
能夠改成:
innodb_data_home_dir = "/xampp/mysql/data/sqldata"
innodb_log_group_home_dir = "/xampp/mysql/data/sqldata"
#innodb_log_arch_dir = "/xampp/mysql/data/sqldata"
在此以前,要如今/xmapp/mysql/data下創建一個新文件夾sqldata
[mysqld]
innodb_force_recovery = 4
而後重啓MySQL服務
用管理員啓動命令行,進入mysql的bin目錄,輸入mysqld --install,回車,
提示:Service successfully installed,
表示安裝MySQL服務成功。
命令行窗口輸入:net start mysql ,能夠正常啓動。
好了,就這麼多了,mysql服務啓動之後就沒什麼問題了。