【排障】编译安装Mysql并使用自启动脚本mysqld后报错
本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程,
前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述。
(题外话,经此一役后,在下深觉如果不是针对DZ官网给出的mysql包和脚本是针对它的产品作了优化的话,还是之前自己掌握了的RPM换源安装Mysql及普通青年的编译安装mysql方法要简易适合得多,不过对方那个使mysql开机自动启动的脚本及一些目录编排一些配置有可借鉴的地方)
启动mysql时报错,服务退出而不更新PID号。

百度报的这串错误,按照那些方法都做了一遍,仍然未能解决,看来问题根源没那么简单。
附网上说的:
1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
7.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
(现在解决完后回过头来看,它就属第4种错误,虽然我已经将/etc/my.cnf 改名,并在mysqld中指向配置文件是/usr/local/Comsenz/etc/my.cnf并在[mysqld]段下都设好了datadir 与 basedir 。但无奈它就是没生效?)
最后想到最厉害的一招,查看错误日志,发现

最开头的错误是不能打开mysql.plugin table,然后要去运行mysql_upgrade去创建它。
然后在进到bin目录下使用mysql_upgrade这个脚本时候,又接到mysql.sock这个文件(或叫接口没有)

到了这一步,似乎陷入死循环了,因为查找mysql.sock套接字文件也是没有的,了解到mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。所以纠结这个mysql.sock文件也是没多大意义的。至少这次mysql未能启动的根源不在它。
返回去查看错误日志,先将另外的错误排除,或许就解决了就不一定,抱着这样的发散思维,我又找到了一行报错

这次的报错就很关键了,简单来说可以理解为mysql还不知道你的存放db的目录在哪里?
所以要进脚本目录敲一个命令去指定它!(假如你是从别的地方迁移过来的也会这样)
虽然很奇怪的是我明明配置文件有指定了,但敲命令去核实是挺好的。
./scripts mysql_install_db –usrer=mysql datadir=/data/mysql 然而再次报错

找不到./bin/my_print_defaults是什么鬼,提示还让我重新编译安装?
还好下面还给出了另一个选择,叫我将basedir也指定好。
于是再次进入cd /usr/local/Comsenz/mysql使用其下目录scripts里的mysql_install_db这个脚本
sudo ./scripts mysql_install_db --user=mysql --basedir=/usr/local/Comsenz/mysql --datadir=/data/mysql &
顺便一提,&这个只是用来将命令放后台运行
太激动了,这次终于不是提示出错。而是成功了!见下图

前面一直出现的报错,结果一环扣一环,不详细看错误日志去一直溯源排查的话,只对应百度单点故障的话是很难去排除故障的。
之前的步骤可能也没做好,没指定对用户、基本目录与数据目录。以致引起这么一串问题。

可以看到上图在为mysql设置了用户和密码后,登录运行mysql可进行操作了。
【排障】编译安装Mysql并使用自启动脚本mysqld后报错的更多相关文章
- 【转】linux 编译安装nginx,配置自启动脚本
linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...
- linux 编译安装nginx,配置自启动脚本
本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...
- CentOS 编译安装 mysql
1.前期准备 1.1 环境说明: 操作系统: CentOS release 6.4 (Final) [查看命令 cat /etc/redhat-release ] mysql : mysql-5.6. ...
- Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake ...
- CentOS下编译安装MySQL 5.6.21
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake:http://www.cnblog ...
- Linux CentOS6.5下编译安装MySQL 5.6
检查:卸载掉原有MySql 因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已 ...
- CentOS 6.6 下源码编译安装MySQL 5.7.5
版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- Linux编译安装Mysql步骤
一. Centos 用 wget 下载需要的软件,保存到目录/home/zwl/MySql/下 wget http://dev.mysql.com/get/Downloads/MySQL-5.5/my ...
随机推荐
- WebDriver打开浏览器-java
环境:配置jdk.使用Eclipse(个人爱好),导入selenium-java-2.42.2.jar.selenium-java-2.42.2-srcs.jar.selenium-server-st ...
- 文件I/O操作(2)
lseek函数原型为int lseek(int fd,int offset, int whence),fd为定位文件的描述符,offset为偏移量,如果是正数,则向文件末尾偏移,负数时,则向文件头偏移 ...
- #pragma alloc_text 与 ALLOC_PRAGMA
百度标题中的两部分,可以找到很多文章,现将收集到的其中两篇整理如下: 转载链接:http://hi.baidu.com/billbeggar/item/c378e2ea39a5daeffa42bada ...
- SMG12232A2标准图形点阵型液晶显示模块的演示程序[C51编程语言]
//SMG12232A2标准图形点阵型液晶显示模块的演示程序[C51编程语言][MCS51总线接口方式] //应用产品: SMG12232A2标准图形点阵型液晶显示模块 // 本演示程序适用于SMG1 ...
- windows内核窥探
windows是一个非常优秀的OS,从今天开始,我要和大家共同分享windows给我们带来的快乐!本人只所以将自己的学习笔记与大家分享,一是让自己更深入的理解windows,再就是有什么疏漏之处,望大 ...
- Good Bye 2015 C - New Year and Domino
题意:计算给定矩形面积(r1,c1),(r2,c2)内长度为2的有多少个?向右或向下计算. 思路:预处理字符.分别向右和向下处理.注意边界情况,可能算多了.用容斥原理计算长度为二的单位. #inclu ...
- 题解西电OJ (Problem 1005 -跳舞毯)--动态规划
Description zyf不小心得了一种怪病,为了维持一天的精力他必须不停跳动.于是他买了一条跳舞毯,每天跳上几小时.众所周知,跳舞毯是给定一个序列,让你在指定时间踏指定的按钮,但zyf似乎不怎么 ...
- 【数论】Baby Step Giant Step
被数论怒虐了一天 心力憔悴啊 感觉脑细胞已经快消耗殆尽了>_< 但是今天还是会了很多之前觉得特别神的东西 比如BSGS 之前听了两遍 好像都因为听得睡着了没听懂-.- 今天终于硬着头皮学会 ...
- POJ3666-Making the Grade(左偏树 or DP)
左偏树 炒鸡棒的论文<左偏树的特点及其应用> 虽然题目要求比论文多了一个条件,但是……只需要求非递减就可以AC……数据好弱…… 虽然还没想明白为什么,但是应该觉得应该是这样——求非递减用大 ...
- 教程-关于Owner和Parent的区别
Parent属性是指构件的包容器,构件只能在此范围内显示和移动 Owner属性是指构件的所有者,它负责构件的创建和释放.