zoukankan      html  css  js  c++  java
  • 阿里云服务器重启后mysql不能启动的问题

    环境:阿里云ECS服务器上,Ubuntu linux 12.04,64位版。MySQL 5.1.

    首先查看/etc/rc.local,可以看到Ubuntu通过/etc/init.d/mysqld脚本启动mysql服务:

    /etc/mysqld start

    这个脚本是安装时从/alidata/server/mysql/目录(mysql安装目录)拷贝过来的,没问题。

    但是在执行这个脚本时,会调用/alidata/server/mysql/bin/my_print_defaults,

    将输出内容交给脚本函数parse_serverarguments()解析,

    得到$basedir, $bindir, $datadir这几个启动目录。

    问题就出在执行my_print_defaults上。


    通过执行/alidata/server/mysql/bin/my_print_defaults --help,可以看到它从以下几个目录读mysql配置:

    1. /etc/my.cnf   
    2. /etc/mysql/my.cnf   
    3. /alidata/server/mysql/etc/my.cnf   
    4. ~/.my.cnf 

    后面两个路径不存在,所以只会读取前两个文件的内容。
    /etc/my.cnf是安装时从/alidata目录拷过来的,没有问题。 
    /etc/mysql/my.cnf却是ubuntu缺省存在的,一读,就把前面的覆盖了。


    所以删除/etc/mysql目录,执行/etc/init.d/mysqld restart,就OK了。

    [后记]

    晚上时候,同事报MySQL又启动不了。错误日志:

    /alidata/server/mysql/libexec/mysqld: File '/var/log/mysql/mysql-bin.index' not found (Errcode: 13)  

    网上搜到文章说”Errorcode:13“是目录权限问题而这个文件是存在的!mysql用户也有读写权限。

    尝试给/var/log/mysql目录权限从0755改成0775,给mysql用户组也加了写权限,现在的权限是:

    drwxrwxr-x 2 mysql mysql 4096 Oct 16 23:00 mysql/

    继续启动MySQL,失败,但错误日志已经从刚才的变成了这个(说明mysql组也需要写权限,难道启动mysql需要其他mysql组用户?):

    /alidata/server/mysql/libexec/mysqld: File './mysql-bin.000032' not found (Errcode: 2)

    继续搜,在这里找到了方法,编辑/var/log/mysql/mysql-bin.index,删除其中的一行内容:

    mysql-bin.000032

    再次启动MySQL,成功。

  • 相关阅读:
    Luogu P4316 绿豆蛙的归宿 题解报告
    Luogu P1850 换教室(NOIP 2016) 题解报告
    Rainbow的信号 题解报告
    $CH5105 Cookies$ 线性$DP+$贪心
    算法竞赛 $0×50$ 动态规划 (+一本通
    $CH5104 I-country$ 线性$DP$
    洛谷$2014$ 选课 背包类树形$DP$
    $SP703 Mobile Service DP$
    $POJ1015 Jury Compromise Dp$/背包
    $POJ1742 Coins$ 多重背包+贪心
  • 原文地址:https://www.cnblogs.com/tara/p/3372183.html
Copyright © 2011-2022 走看看