一般mysql安装在/usr/local/下,现以将/usr/local/mysql/data目录移动到/home/mysql下为例

首先保证/home/mysql目录是存在的,本例中使用了mysql开机启动,如下为data目录未移动之前的开机启动service文件

[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target [Service]
Type=forking
PIDFile=/usr/local/mysql/data/mysql.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false [Install]
WantedBy=multi-user.target
~

若未使用开机启动,也可使用下面命令分别对mysql进行启动和停止操作

启动mysql

/usr/local/mysql/support-files/mysql.server start

停止mysql

/usr/local/mysql/support-files/mysql.server stop

下面开始进入mysql data目录移动

1、停止mysql

systemctl stop mysql

2、移动mysql data目录

mv /usr/local/mysql/data /home/mysql/

3、修改mysql配置文件my.cnf,一般在/etc/下,在[mysqld]下添加或修改如下参数,默认pid文件在datadir目录下,且和主机名一致,但为防止主机名变化后,mysql.service文件pid名称未更新,故建议将pid名称固定

pid-file=/home/mysql/data/mysql.pid
datadir=/home/mysql/data

4、修改mysql启动文件,/usr/local/mysql/support-files/mysql.server

该文件中datadir目录默认为空,修改成如下形式 (如果my.cnf配置有datadir,该步骤可以省略)

datadir=/home/mysql/data

5、修改开机启动文件,/usr/local/systemd/system/mysql.service,PIDFile修改成如下形式

PIDFile=/home/mysql/data/mysql.pid

6、使配置生效

systemctl disable mysql
systemctl enable mysql
systemctl daemon-reload

7、启动mysql

systemctl start mysql

mysql启动常见问题

问题一

“The server quit without updating PID file”是比较常见的mysql启动问题
Nov  :: localhost.localdomain systemd[]: Starting Mysql...
Nov :: localhost.localdomain mysql.server[]: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).
Nov :: localhost.localdomain systemd[]: mysql.service: control process exited, code=exited status=
Nov :: localhost.localdomain systemd[]: Failed to start Mysql.
Nov :: localhost.localdomain systemd[]: Unit mysql.service entered failed state.

启动错误,在mysql的data目录下会存在一个后缀为err的日志,上述mysql data目录移动后,日志路径变为/home/mysql/data/localhost.localdomain.err,该日志会提供一些启动失败的错误信息

如下解决方式供参考

一、/usr/local/mysql/data目录不存在

解决方案:(两种方式)

1、修改/etc/my.cnf文件,添加pid-file,指向mysql具有权限的地址

2、新建 /usr/local/mysql/data 目录,要保证mysql对该目录 具有权限

二、mysql对/usr/local/mysql/data目录不具有权限

解决方案

chown -R mysql:mysql /usr/local/mysql/data

三、进程中已经启动有mysql,通过“ps -ef|grep mysqld”查看,如果存在则,kill掉

四、删除mysql时为删除完全

解决方案:

在mysql安装目录下的data目录下,查看是否存在mysql-binlog.index,若存在,则删除

五、mysql启动时未指定datadir

解决方案:

在mysql配置文件/etc/my.cnf,及启动文件mysql.server中添加datadir,可参考上述“mysql data目录移动”进行设置

六、centos系统,默认会开启selinux  (暂时还未碰到过)

解决方案:

1、临时改为告警模式,shell命令行输入setenforce 0

2、打开/etc/sysconfig/selinux,把SELINUX=enforcing改为SELINUX=disabled

问题二

mysql反复重启,且通过kill命令无法关闭

每次ps -ef| grep mysqld时发现pid都不同,且启动日志中显示mysql在重复启动

解决办法:

我所碰到的这种情况是磁盘不足,删除了部分文件,移走重要的大文件,mysql不再重复启动,但kill不掉,kill后,mysql会自动重启,通过在上面提到的mysql自带命令可以关闭

/usr/local/mysql/support-files/mysql.server stop

移走mysql data目录,及常见mysql启动问题的更多相关文章

  1. 更改ubuntu mysql data目录位置

    很多时候,mysql的数据会非常大,数据默认放在/var/lib/mysql,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便可以应付mysql数据增 ...

  2. 将mysql的data目录移走方法

    如移动到"/home/mysql/data",我的mysql是装在/usr/local/mysql下的 1. 将/usr/local/mysql/data移动到/home/mysq ...

  3. 更改MySQL数据库目录位置[zz]

    MYSQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步:1.home目录下建立data目录cd /homemkdir data2.把My ...

  4. vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

    vs2015连接mysql数据库常见问题 最近在vs2015用asp.net开发一个网站,要连接mysql数据库,于是百度了一下相关配置的文章,有好几篇文章说了相关步骤,但是我装的时候还是遇到了问题, ...

  5. linux下安装mysql问题总结(一)mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended

    linux下安装mysql数据库 linux版本:CentOS release 6.8 (Final) mysql版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.g ...

  6. mysql安装目录、配置文件存放位置

    linux系统下,如何知道mysql使用的配置文件到底是哪个呢?linux自带的mysql的安装目录又是什么呢?数据存放在什么目录下? 1.linux系统自带的mysql,其安装目录及数据目录查看方法 ...

  7. liunx mysql数据库目录迁移

    1.查看mysql安装目录 从目录etc/my.cnf中查看安装目录 2.进入mysql目录,停止mysql服务 命令: cd usr/local/mysql 命令:service mysql sto ...

  8. Linux安装MySql.Data for mono

    wget http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-6.8.3-noinstall.zipunzip m ...

  9. "MySql.Data.MySqIClient.MySqlProviderSevices”违反了继承安全 性规则。派生类型必须与基类型的安全可访问性匹配或者比基类型的安 全可访问性低。 "解决方法

    写Code First 时(使用的是MySql数据库),添加好EntityFrame.MySql.Data .MySql.Data.Entity后 ,写好TestDbContext类. 运行时报出一个 ...

随机推荐

  1. js 分页插件(jQuery)

    参考:http://www.jb51.net/article/117191.htm 侵删 css 部分 @charset "utf=8"; *{ box-sizing: borde ...

  2. 前端常见算法的JS实现

    1.冒泡排序 function bubbleSort(arr){ var i = 0, j = 0; for(i=1; i<arr.length; i++){ for(j=0; j<=ar ...

  3. git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

    方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来) git stash git pull origin master git sta ...

  4. 22.Odoo产品分析 (三) – 人力资源板块(3) – 休假管理(1)

    查看Odoo产品分析系列--目录 安装休假管理模块,出现"休假"菜单:  休假管理为了更方便直观的看出员工的休假信息,将信息以日历视图显示出来.  在日历中点击某一天时,可以创建改 ...

  5. 14.Odoo产品分析 (二) – 商业板块(7) –制造(1)

    查看Odoo产品分析系列--目录 一旦你收到了库存中所需的原材料,就可以开始生产终端产品了.ERP系统的部分功能是帮助您根据可用资源调度这些订单.其中一项资源是原产品.其他资源可以包括可用劳动力或特定 ...

  6. Linux 解决Linux下火狐浏览器中文乱码成方块显示问题

    解决Linux下火狐浏览器中文乱码成方块显示问题 by:授客 QQ:1033553122   测试环境: CentOS-6.0-x86_64 问题描述: 浏览器页面显示如下   解决方法: 安装中文支 ...

  7. android adb 流程原理代码分析(一)

    由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都 ...

  8. ES搜索引擎基本操作

    一.创建索引库 执行:,索引库的名称为zhen 结果(我已经创建过了,重复执行会报错): 二.创建索引 1.添加索引 2.添加索引(动态添加新列) 3.添加指定id的索引[根据id可以直接修改一前的索 ...

  9. MyBatis笔记----多表关联查询两种方式实现

    数据库 方式一:XML 按照下面类型建立article表 Article.java package com.ij34.model; public class Article { private int ...

  10. 解决Unable to load native-hadoop library for your platform

    使用hadoop fs相应命令时候总是出现 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat ...