当前位置:首页 > 服务器 > 正文

服务器mysql无法启动(为什么mysql的服务无法启动)

本篇文章给大家谈谈服务器mysql无法启动,以及为什么mysql的服务无法启动对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

启动MySql服务器失败怎么办?

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

一:服务启动

1.我们可以在Windows搜索栏中搜索服务应用功能,或者其他方式打开服务,右键单击选择以管理员运行。

2.在服务中找到MySQL,手动点击启动。

不过用这个方法很可能还是无法启动mysql服务。

二:删除Data

怎么解决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 无法启动的一个常见原因,如:文件,端口等。由于 linux 中用于启动 mysqld 进程的 mysql 用户通常是不能登陆的,可以使用类似下面的命令检查文件的访问权限。

sudo -u mysql touch /var/lib/mysql/b

找出问题后,修改对应文件或目录的权限或属主后通常可以解决问题。但有时 mysql 用户有访问文件和目录的权限,但仍然会被拒绝访问,例如下面这个例子:

mysql system sudo -u mysql touch /home/mysql/data/a

mysql create table t1 (

id int primary key,n varchar(10

) data directory

ERROR 1030 (HY000): Got error 168 from storage engine

测试说明 mysql 用户有这个目录的访问权限,但创建文件还是失败,这种情况让很多人困惑,这个时候通常是 mysqld 进程的访问被 linux 的 selinux 或 apparmor 给阻止了,大家可以看到创建的表不是在 mysql 的默认目录下面,因此 selinux 或 apparmor 的 policy 里面没有包含这个目录的访问权限,此时只要对应的修改 policy 就行了,当然把 selinux 或 apparmor 停了也行。

有时虽然对系统资源有访问的权限,但系统资源已经被占用:

mysqld --no-defaults --console --user mysql

2020-11-03T03:36:07.519419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 21171

2020-11-03T03:36:07.740347Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

这个故障产生的原因是另外一个 mysqld 进程已经启动并占用了对应的文件。

二、参数设置错误

参数设置错误造成 MySQL 无法启动的原因也非常常见,此时先要检查 MySQL 启动时会调用的参数,下面的命令可以查询 MySQL 启动时调用参数文件的顺序:

$ mysqld --verbose --help | grep "Default options " -A 1

Default options are read from the following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

知道了 MySQL 参数文件的调用顺序,我们就可以检查对应的参数文件,找出其中的错误,如果觉得参数文件的可读性不强,可以使用下面的命令显示 mysqld 程序将要调用的参数:

$ mysqld --print-defaults

/usr/sbin/mysqld would have been started with the following arguments:

......

注意这个命令显示完参数后就退出,不会真正运行 mysqld。这个命令和 my_print_defaults mysqld 完全是等价的,只不过后者的显示方式是一行一个参数。

然后开始对可疑的参数进行调试,我个人喜欢加的参数和顺序如下:

1. 在 mysqld 后加上第一个参数 --no-defaults ,这个参数的作用是通知 mysqld 在启动的时候不要读任何参数文件;

2. 第二个参数是 --console,这个参数会把错误信息输出到屏幕上,这个参数带来的一个弊端是所有的信息都输出到屏幕上,让屏幕显得比较乱,但对于我们调试却是很方便的;

3. 第三个参数是 --log-error-verbosity=3,这个参数会显示详细的日志;

4. 然后再在后面加上有把握的参数,可以一次只加一个参数,然后启动 mysqld,采用排除法逐步找出错误的参数。

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为自己定义的数值。

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无法启动-The innodb_system data file 'ibdata1' must be writable

刚安装的mysql无法启动,提示没有权限

The innodb_system data file 'ibdata1' must be writable

[root@localhost ~]# mysqld --initialize

[root@localhost ~]# systemctl start mysqld

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

一 无法启动mysql,可以查看mysql日志 默认路径

/var/log/mysql.log

2020-03-20T02:12:57.667801Z 1 [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable

2020-03-20T02:12:57.668066Z 1 [ERROR] [MY-012278] [InnoDB] The innodb_system data file 'ibdata1' must be writable

2020-03-20T02:12:57.668410Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine

2020-03-20T02:12:57.668897Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

2020-03-20T02:12:57.669159Z 0 [ERROR] [MY-010119] [Server] Aborting

mysql日志报错

根据日志查看提示, 是innodb文件没有写入权限

查找ibdata1文件路径

[root@localhost ~]# find / -name ibdata1

/var/lib/mysql/ibdata1

[root@localhost ~]# chmod -R 777 /var/lib/mysql

[root@localhost ~]# chown mysql:mysql -R /var/lib/mysql

三 接着启动服务

[root@localhost ~]# systemctl start mysqld.service

[root@localhost ~]# systemctl status mysqld.service

其他注意事项

另外注意一下mysql初始化的密码 也记录到 mysqld日志里面

[root@localhost ~]# cat /var/log/mysqld.log

2020-03-20T02:12:15.251589Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 335

2020-03-20T02:12:19.068387Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fyIGo9o9(t.p

2020-03-20T02:12:57.636850Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 492

[root@host]# mysqladmin -u root password "new_password";

然后可以通过以下命令来连接到Mysql服务器:

[root@host]# mysql -u root -p Enter password:*******

出现问题的时候,要多查看日志。根据日志信息能锁定问题

关于服务器mysql无法启动和为什么mysql的服务无法启动的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

取消
扫码支持 支付码