安装好phpstudy后,Apache可以启动,Mysql无法启动。
原因:
之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQL服务。
解决办法:
在cmd命令行下输入:sc delete mysql即可删除mysql服务。
当我们在cmd里使用 sc delete 服务名,来删除服务的时候,报错误,SC OpenService 失败5:拒绝访问,这似乎是因为权限不够。
解决方法:
第一步、我们必须先取得管理员权限,以管理员权限运行cmd.exe。
第二步、在输入命令:sc delete 要删除的服务名
phpstudy中apache或mysql无法启动
phpstudy中apache或mysql无法启动,启动一下没了
明显端口被占用了,假如我们需要确定谁占用了我们的80端口,3306端口
对网站来说,网络apatche服务器是默认 80,数据库mysql是3306
端口占有两种解决方法:
法1:把被占用的 进程结束掉 (如果你没装iis的话,也就是 你把能关的软件都关闭 尤其迅雷什么的)
法 2:改apatche 的端口
具体如下:
----------------------------------------
法一、如何查看某个端口被谁占用,把被占用的 进程结束掉
我们在启动应用的时候经常发现我们需要使用的端口被别的程序占用,但是我们又不知道是被谁占用,这时候我们需要找出“真凶”,如何做到呢?
方法/步骤
第一步:开始---->运行---->cmd,或者是window+R组合键,调出命令窗口
第二步:输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。
(对网站来说,网络apatche服务器是默认 80,数据库mysql是3306)
第三步:查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720
第四步:有两种方法
1..续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe
2..
或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:
则我们点击[查看]--->[选择列],将PID(进程标示符)前面的勾打上,点击确定。
这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。
第五步:结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。
-------------------------------------------------------------------------
法二:phpstudy修改端口
phpstudy控制面板中,点击 其他选项
:将端口改为 8080
但需要注意,修改端口后,在输入网址的时候,要带着端口
如:(注意有冒号)
localhost:8080
localhost:8080/zz/index.php
故障处理移除当前使用的 redo log 文件,然后可以试着启动数据库,结果启动失败!
提示:
[ERROR] InnoDB: Page [page id: space=0, page number=0] log sequence number 178377412422 is in the future! Current system log sequence number 165909011496.
这样的错误,这是因为 MySQL writer 线程按照配置的时间间隔以 page 为单位刷新 buffer 数据到磁盘。当数据刷新到磁盘的时候,新写入磁盘的 page 包含了较新的 LSN,此时系统 system 表空间头的 LSN 并没有同步更新,通常这是检查点线程的工作。在正常的崩溃恢复中,MySQL 可以借助 redo log 来进行前滚和回滚,但是此时 redo log 已经被我们删掉了,MySQL 无法进行恢复 *** 作。此时,我们设置 innodb_force_recovery=3 来强制启动 MySQL,仍然启动不成功,改成 4 后启动了!
再使用 mysqldump 导出备份,结果噩梦又降临了!MySQL 又 crash 了。
提示:
InnDB: Failed to find tablespace for table......
设置参数 innodb_force_recovery=5,数据库仍然启动失败,再设置成 6,启动成功!用 sqldump 顺利把数据备份出来了!
再初始化数据库,把刚刚备份的数据库导入,数据库恢复成功完成!
参数说明
这里的关键是设置 innodb_force_recovery 参数,对应这个参数的说明如下:
1. SRV_FORCE_IGNORE_CORRUPT:忽略检查到的 corrupt 页;
2. SRV_FORCE_NO_BACKGROUND:阻止主线程的运行,如主线程需要执行 full purge *** 作,会导致 crash;
3. SRV_FORCE_NO_TRX_UNDO:不执行事务回滚 *** 作;
4. SRV_FORCE_NO_IBUF_MERGE:不执行插入缓冲的合并 *** 作;
5. SRV_FORCE_NO_UNDO_LOG_SCAN:不查看重做日志,InnoDB 存储引擎会将未提交的事务视为已提交;
6. SRV_FORCE_NO_LOG_REDO:不执行前滚的 *** 作。
windows下:1.
打开命令行窗口(cmd),如果安装的mysql服务名为mysql,则net
start
mysql(此步也可直接在控制面板->管理->服务中启动mysql)
2.
输入命令进入到mysql的安装目录中的bin目录内,如安装目录为c:\program
files\mysql,则输入命令cd
c:\program
files\mysql\bin;
3.
使用命令启动mysql服务,如用户名为root密码为123456,则命令mysql
-u
root
-p
123456;如果登录成功,则说明mysql服务启动成功。
linux下:
1.
直接在命令行窗口中service
mysql
start(假设服务名称为mysql)
2.
然后按windows下的第2和第3步进行同样验证;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)