资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

mysql怎么启动不了,为什么无法启动mysql

一次解决MySQL无法启动的全过程

启动Mysql提示ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxx.local.pid).

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的旌阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1、查看mysql错误日志:打开/usr/local/var/mysql/xxxx.err或者xxxx.local.err文件。

2、问题应该是某个程序占用了mysql的默认端口3306。

3、查看端口使用情况lsof -i:3306,发现是一个用户名为_mysql启动了mysqld指令占用了3306,感觉现象非常奇怪,不清楚为什么会有这个用户组,为什么会启动mysqld,由于这个电脑是公司其他同事转移资产到的我名下,所以有可能是之前用户或者公司it装了什么服务导致的。

4、首先尝试干掉进程:sudo kill xxxx,结果发现当kill后,还会重新启动。

5、尝试修改mysql默认启动端口,Baidu上有人告诉修改/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件

添加string--port=3307/string保存,先重新启动mysql服务,发现问题依然存在,发现配置没有起作用,默认端口依然是3306,然后考虑重新启动电脑,看看是否可以修改占用默认端口的配置。

6、重启后再次查看3306端口占用情况,发现确实不存在了。但是发现启动mysql服务时,依然存在问题:

仔细观察发现,这个占用和plist中的mysql配置一样的,所以可以确定每次启动计算机后,会按默认配置执行一个mysqld。

7、不清楚为什么会按com.oracle.oss.mysql.mysqld.plist配置执行mysqld,于是把注意力放在了Mac启动上。

8、Mac的启动原理是:

看到这里就明白了,原来LaunchDaemons里面放的是Mac启动时的一些启动服务,

9、System/Library和/Library和~/Library目录的区别:

10、System/Library和/Library和~/Library目录的区别:

11、有了上面的结果,于是把注意力放在了com.oracle.oss.mysql.mysqld.plist上,每个Mac启动中都有么,这个是如何添加的。首先查看了家里的其他苹果电脑,发现都没有这个plist文件,于是开始研究这个文件的产生原因。

12、经过Baidu怀疑这个文件应该是之前用dmg安装包安装的mysql产生的,在设置中也发现了残留信息

于是果断把自动启动去掉,重启计算机。

13、重启后,发现无论是3306还是3307端口上都没有mysql服务了,于是运行mysql.server start,这次终于看见了Starting MySQL . SUCCESS!

14、删除com.oracle.oss.mysql.mysqld.plist文件,重启电脑后,发现设置中仍然还有MySQL的控制选项。

15、MySQL dmg安装方式的卸载方法:

至此,这个问题算是完美解决了。

mysql无法启动

我遇到同样的错误,折腾了好久才摸索出来。网上的解决办法都试过了,没有确实可行的。最终总结出来,终于解决了。

我的下载的是mysql-5.7.9绿色版出的问题。最终解决过程供你参考:

1、下载的mysql-5.7.9,出现你的问题。试了各种办法无法解决。有网友说mysql-5.7.9版本有问题。我改下载了5.6.27版本,尝试不成功。但报错变为:无法启动mysql服务,发生错误1067。解决办法:my.ini 添加 tmpdir = D:\mysql-5.6.27-winx64\data。问题解决。

2、后来我对比了mysql-5.7.9与5.6.27,发现mysql-5.7.9-winx64没有data目录,mysql-5.6.27-winx64\data\mysql,存了不少数据文件。原来调试5.7.9的版本时,记得日志报告一直有mysql.user、mysql.plugin不存在的提示。(原以为这些文件会自动生成)。后来把这个mysql-5.6.27-winx64\data下的mysql文件夹整个复制到5.7.9版本中的同目录下。问题解决。

mysql 服务无法启动是什么原因?

打开mysql server instance config ,然后,单击next,然后选择remove server instance,删除后,然后卸载mysql程序,卸载完成后。打开 Documents and Settings\All Users目录,在里面有个application data文件夹,如果没有的话,那是他隐藏了,(工具----文件夹选项----显示隐藏的文件),打开application data 文件夹,里面有个mysql文件夹,删除即可,然后重新安装,绝对成功。

去mysql5\data里面看一下.err日志,会有提示的。

1、可能端口被占用

2、可能my.cnf配置了错误的参数

3、可能没有初始数据库

解压后的文件有默认的配置文件(my-default.ini),但是默认的配置文件不好用,使用的时候会出现很多问题,比如里面的汉字全是乱码等。所以需要配置个人默认配置文件:在解压后的路径下新建文件:my.ini,将以下代码复制进去,代码中出现两次D:\mysql-5.7.17-winx64,这是我的MySQL的解压路径,各位根据自己的路径替换掉即可。至此,MySQL可以执行安装了。

php中mysql启动不起来

问题:

安装好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

mysql 数据库不能正常启动?

故障处理

移除当前使用的 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:不执行前滚的操作。

mysql服务器启动不了怎么回事?

解决mysql服务无法启动的问题

找到mysql安装目录,将其配置文件my.default.ini改名为my.ini,并且将my.ini移至bin目录下。

启动命令行,将目录切换到mysql安装目录的bin目录下。

接下来,在命令行执行命令:mysqld --initialize --user=mysql --console

注意,上一个步骤会获得一个临时密码,需要记录,之后会用到。

接下来在控制台以命令行输入: mysqld --install,进行安装服务操作。

之后,在任务管理器找到“服务”,启动其中的MYSQL服务即可。

之后,输入命令行mysql -uroot -p,利用之前的临时密码输入即可登录数据库成功。

修改临时密码,设置密码:mysqladmin -u USER -p password PASSWORD,注意USER和PASSWORD为自己定义的数值。


文章题目:mysql怎么启动不了,为什么无法启动mysql
本文网址:http://cdkjz.cn/article/hdccpi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220