【排障】编译安装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 ...
随机推荐
- selenium IDE & Remote Control & Webdriver
一直忘记写selenium的开始学习的过程,今天趁五一,天气有雨,写下这文章 1.进入selnium官网,了解selenium1,2,grid的区别.下载c#相关的包(使用c#的人非常少) 2.使用I ...
- js 数组常用方法说明
//push 向数组最后添加一项 var arr = ['one', 'two', 'three']; arr.push("four"); console.log(arr);//[ ...
- NOR型flash与NAND型flash的区别
1) 闪存芯片读写的基本单位不同 应用程序对NOR芯片操作以“字”为基本单位.为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区.读写时 ...
- java基础程序设计学习
java使用System.out来表示标准输出设备,使用System.in来表示标准输入设备.java并不直接支持控制台输入,但是可以使用Scanner类创建它的对象,以读取来自System.in的输 ...
- poj2152 Fire
好难啊,我弱爆了. 题解看陈启峰的论文... /** * Problem:POJ2152 * Author:Shun Yao * Time:2013.9.2 * Result:Accepted * M ...
- 沈晓军 / LarvaFrame - 代码托管 - 开源中国社区
沈晓军 / LarvaFrame - 代码托管 - 开源中国社区 统计
- 获取本机IP地址和MAC地址
unit NetFunc; interface uses SysUtils, Windows, dialogs, winsock, Classes, ComObj, WinInet, Variants ...
- hdoj 2032 杨辉三角
杨辉三角 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- VS2010 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR”
VS2010 (VC2010)建立工程时默认的字符集是Unicode,所以在代码中使用MessageBox时需要输入Unicode,用TEXT()这个宏输入参数,否则会报错: 代码:Message ...
- 使用JavaScript实现分页效果
应公司需求,有时需要制作静态页面网站,而一旦涉及到文章的分页,实现起来非常麻烦,自己又刚入门,对js不是很熟悉,所以就拿来练练手. 首先页面结构如下,分别展示数据跟分页: <!DOCTYPE h ...