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服务启动之后就没什么问题了。