MySQL无法启动几种常见问题小结

昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过。

问题1:目录、文件权限设置不正确

MySQL的$datadir目录,及其下属目录、文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动。
错误信息例如:

代码如下:

[code]
mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe: line 107: /usr/local/mysql/data/imysql.local.err: Permission denied

问题2:端口冲突

已有其他mysqld实例启动,且占用了相同端口,需要修改 port 选项。
错误信息例如:

代码如下:

[ERROR] Can't start server: Bind on TCP/IP port: Address already in use
[ERROR] Do you already have another mysqld server running on port: 3306 ?
[ERROR] Aborting

问题3:innodb配置不正确

innodb中关于datafile、log file设置不正确,导致无法启动。尤其是第一次用默认参数启动过,后来又参考一些优化指南后,修改了innodb的参数,会提示different size,详细错误例如:

代码如下:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 134217728 bytes!
[ERROR] Plugin ‘InnoDB' init function returned error.
[ERROR] Plugin ‘InnoDB' registration as a STORAGE ENGINE failed.

问题4:没有初始化mysql系统库

MySQL安装完后,需要运行mysql_install_db初始化mysql这个系统库,才能正常启动。

问题5:如果将mysql以普通用户权限运行的时候需要注意一些目录权限与用户名密码设置

有时候为了让mysql更安全一些,我们都会将mysql低权限运行,由于一些安全设置工具的原因,需要将此用户重新设置一下密码就可以了。

本次先列举上述几个常见问题,下次再补充。

通常地,碰到mysqld进程无法启动时,不管任何错误,都优先检查错误日志(日志文件一般在 $datadir/xx.err文件,或者是 /var/log/message、/var/log/mysql/mysqld.log之类的),根据错误日志提示去找到问题原因,不要只看表面提示,例如找不到 mysql.sock 文件之类的。

(0)

相关推荐

  • MySQL因配置过大内存导致无法启动的解决方法

    问题描述 MySQL 启动时报错,查看错误日志有 [ERROR] InnoDB: Cannot allocate memory for the buffer pool (不能从缓存池中分配给innodb引擎需要的内存) 解决办法 需要调整 MySQL 配置文件 my.cnf 中的 innodb_buffer_pool_size.key_buffer_size 的大小设置,适当的调大内存分配,一般调整为系统内存的一半 先使用 free -m 查看下系统内存大小,查看是 1G 内存 那么 vi /e

  • MySQL 重装MySQL后, mysql服务无法启动

    解决方法: 1: 先卸载mysql, 手动将其安装目录里没有删除干净的文件全部删除. 2: 将C:\ProgramData\MySQL 里有关mqsql的文件全部删除. 3: 重新安装 mysql 程序. mysql服务就可以正常启动了

  • Windows下MySQL 5.7无法启动的解决方法

    问题描述: 从网上下了5.7 的MySQL,在bin目录下执行 start mysqld ,弹出个cmd窗口一闪就没了,也看不清是什么报错.mysqld --install安装了服务,也启动不了. 处理步骤: 1.打开事件查看器检查报错信息 2.网上查了,都说如果是 linux 需要执行 mysql_install_db:如果是Windows需要拷贝 user.frm user.MYD和user.MYI 3.不过,http://serverfault.com/questions/291126/m

  • 解决MySQL因不能创建临时文件而导致无法启动的方法

    问题描述 最近在工作中遇到一个问题,MySQL 启动失败,错误日志: mysqld: Can't create/write to file '/tmp/ibfguTtC' (Errcode: 13) 说明/tmp目录无法写入 解决办法 使用命令 ll -d /tmp 命令检查目录权限 使用 chmod 1777 /tmp 设置为正确权限 启动成功 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持.

  • MySQL 数据库的临时文件究竟储存在哪里

    如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp./var/tmp或/usr/tmp.如果包含临时文件目录的文件系统过小,可对mysqld使用"-tmpdir"选项,在具有足够空间的文件系统内指定1个目录. 在MySQL 5.1中,"-tmpdir"选项可被设置为数个路径的列表,以循环方式使用.在Unix平台上,路径用冒号字符":"隔开,在Windows.NetWare和OS/2平台上,路径用分号字符";"

  • 碰到MySQL无法启动1067错误问题解决方法

    今早在对一张table 创建primay key过程中发生了断电,当电脑再次启动时候,发现mysql 服务无法启动,使用 net start 提示 1067错误,折腾了2个小时无法解决,后来只能通过手工删除数据文件,日志文件,再启动服务,然后导入数据来完成. 启动服务发生1067错误: 1.删除datadir 下的用户数据库文件 和 日志文件 (ib_logfile0,ib_logfile1). 2.删除innodb表空间ibdata1 3.启动mysql服务: 4.导入数据: 5.檢查數據:

  • linux下mysql自动备份数据库与自动删除临时文件

    一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表:crontab -l然后新建:crontab -e添加一行:00 03 * * * rm -rf /www/cmstest/my120/public/scripts/jpgraph/*保存退出.重启服务:  /etc/rc.d/init.d/crond restart 二.每日24:00自动备份数据库 利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysq

  • MySQL无法启动几种常见问题小结

    昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过. 问题1:目录.文件权限设置不正确 MySQL的$datadir目录,及其下属目录.文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动. 错误信息例如: 复制代码 代码如下: [code] mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data /usr/local/mysql/b

  • Win7 64位 mysql 5.7下载安装常见问题小结

    1.从官网下载MySQL: 这是我们要找的,win7 64位 点击下载; 出现如图所示,我们不必要登录注册,点击红线内的即可的即可. 2.安装及配置: 然后解压到本机文件夹内: 进入到该目录下,将my-default.ini文件复制一份改名为my.ini 打开my.ini 进行配置 代码:(把里面D:\mysql\mysql-5.6.17-winx64改成你自己的软件路径,保存) [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysq

  • C++连接mysql数据库的两种方法小结

    现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的

  • mysql中的7种日志小结

    MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slow query log) 6:一般查询日志(general log) 7:中继日志(relay log) 其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义. 一.重做日志(redo log) 作用: 确保事务的持久性.re

  • MySql安装启动两种方法教程详解

    mysql安装启动两种方法如下所示: 方法一(简单版): 1.cmd进入mysql安装的bin目录:mysqld.exe –install 2.net start mysql 服务启动(或者选择计算机->(右键)管理->服务和应用程序->服务->mysql右键启动服务) 3.mysql –uroot –p 回车 4.password留空 回车 方法二: 1.cmd进入到mysql安装目录bin,如:D:\MySQL Server 5.6\bin 2.mysqld --console

  • php获取mysql版本的几种方法小结

    select VERSION() 当前$res=mysql_query("select VERSION()");$row=mysql_fetch_row($res);这样的形式调用SQL查询来获取. 如果查询PHP自身安装的MYSQL支持库(CLIENT)的版本,可以用<?php phpinfo();?> 更为简便的方法使用PHP自带函数mysql_get_server_info();

  • 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式

    Ubuntu Server下启动/停止/重启MySQL数据库的三种方式 系统环境:ubuntu server 12.10 x64(mysql为系统自带) 当我们需要修​​改MySQL的配置文件my.cnf(windows 下为 my.ini)来进行一些设置的时候,修改完之后我们需要重启MySQL. my.cnf文件位置为:/ect/mysql/my.cnf Waring:如果该文件配置错误,MySQL将无法启动. 下面介绍三种方式对MySQL进行启动/停止/重启操作: 启动mysql: 方式一:

  • Springboot之修改启动端口的两种方式(小结)

    Springboot启动的时候,端口的设定默认是8080,这肯定是不行的,我们需要自己定义端口,Springboot提供了两种方式,第一种,我们可以通过application.yml配置文件配置,第二种,可以通过代码里面指定,在开发中,建议使用修改application.yml的方式来修改端口. 代码地址 #通过yml配置文件的方式指定端口地址 https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-demo2 #硬

  • MySQL复制表的三种方式(小结)

    复制表结构及其数据 下面这个语句会拷贝数据到新表中. 注意:这个语句其实只是把select语句的结果建一个表,所以新表不会有主键,索引. create table table_name_new as (select * from table_name_old); 只复制表结构 create table table_name_new as select * from table_name_old where 1=2; 或者 create table table_name_new like tabl

  • MySQL删除表的三种方式(小结)

    drop table drop 是直接删除表信息,速度最快,但是无法找回数据 例如删除 user 表: drop table user; truncate (table) truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用 例如删除 user 表: truncate table user; delete from delete 是删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行 例如删除user表的所有数据 delete fro

随机推荐