环境:阿里云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,成功。

阿里云服务器重启后mysql不能启动的问题的更多相关文章

  1. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法

    在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问的原因是阿里云平台为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 解决办法:(这里以阿里轻量应用服务器为 ...

  2. 阿里云服务器上安装mysql的心路历程(博友们进来看看哦)

    在阿里云花了100买了一台云服务器,配置如下: CPU: 1核 内存: 512MB 数据盘: 0G 带宽: 1Mbps 阿里云服务器安装mysql搞得我想吐血,搞了一个多星期,现在才搞好,而且,还有许 ...

  3. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制

    问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...

  4. 使用Navicat连接阿里云服务器上的MySQL数据库=======Linux 开放 /etc/hosts.allow

    使用Navicat连接阿里云服务器上的MySQL数据库   1.首先打开Navicat,文件>新建连接> 2,两张连接方法 1>常规中输入数据库的主机名,端口,用户名,密码 这种直接 ...

  5. 阿里云服务器+Tomcat项目+mysql 发布项目全过程

    这个博客管理系统折腾我好几天了. 总结一下整个过程吧! 1.首先这个博客在tomcat下 windows系统可以完全跑起来了,无论是前台或者后台都能实现所有的功能. 2.然后我买了一个域名jasonj ...

  6. 阿里云服务器及部署mysql

    可通过百度获取内容不再赘述. 远程连接: 远程连接阿里云服务器需在服务器上开放443端口,方法自行百度 win10通过系统自带远程连接服务连接时需安装凭据:   http://blog.csdn.ne ...

  7. 使用Navicat连接阿里云服务器中的Mysql数据库

    1.首先将阿里云服务器中的安全组添加上Mysql的端口3306,如下图所示: 步骤就是进入到阿里云的官网,点击右上角控制台,在左边选择云服务器ECS--->实例 点击图中的管理按钮,然后选择本实 ...

  8. 使用Navicat连接阿里云服务器上的MySQL数据库--转

    手把手教你如何正确连接阿里云服务器上的数据库: 1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示. 2.因为是连接服务器上的MySQL,所以我们使用SSH连接, ...

  9. 阿里云服务器 CentOS 安装Mysql 5.6

    下载:https://dev.mysql.com/downloads/file/?id=471181   第一步: 安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包 [ro ...

随机推荐

  1. [AWS S3] Hosting a Static Website on Amazon S3

    In this lesson, you will learn how to host a static website on Amazon S3. I will show you how to cre ...

  2. [AngularJS] Enable Animations Explicitly For A Performance Boost In AngularJS

    http://www.bennadel.com/blog/2935-enable-animations-explicitly-for-a-performance-boost-in-angularjs. ...

  3. [AngularJS] ng-if vs ng-show

    ng-show: ng-show element will stay in dom, just added a ng-hide attr, so it won't show. ng-if: It ha ...

  4. [Angular 2] Custom Validtors

    Create a custom validtor which only accepts the string start with '123'; function skuValidator(contr ...

  5. mysql批量删除指定前缀或后缀表

    今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了 ...

  6. 案例:java中的基本排序

    //冒泡排序 import java.util.Arrays; public class ForTest{ public static void main(String args[]){ int[] ...

  7. Python访问sqlite3数据库取得dictionary的正路!

    [引子] 很多人都知道,Python里是内置了很好用的sqlite3的.但这个库有个缺陷,在执行fetchall()/fetchone()等方法后,得到的是一个tuple.以前吧,做自己的小项目,tu ...

  8. POJ 1330 Nearest Common Ancestors(LCA模板)

    给定一棵树求任意两个节点的公共祖先 tarjan离线求LCA思想是,先把所有的查询保存起来,然后dfs一遍树的时候在判断.如果当前节点是要求的两个节点当中的一个,那么再判断另外一个是否已经访问过,如果 ...

  9. CSS基本知识介绍

    CSS (Cascading Style Sheet)叠层样式表.用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 样式的几种控制方法: 1.行内样式         <div ...

  10. ASPNET5 诊断

    1. 配置一个错误的处理页 在ASP.NET5, 可以在Startup的Configure里配置一个错误处理页,对于开发来说,非常简单,只要增加Microsoft.AspNet.Diagnostics ...