一般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. 洛谷P3235 [HNOI2014]江南乐(Multi-SG)

    题目描述 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一个数F,然后游戏系统 ...

  2. BZOJ3453: tyvj 1858 XLkxc(拉格朗日插值)

    题意 题目链接 Sol 把式子拆开,就是求这个东西 \[\sum_{i = 0} ^n \sum_{j = 1}^{a + id} \sum_{x =1}^j x^k \pmod P\] 那么设\(f ...

  3. Dynamics 365-部分用户访问环境缓慢

    链接来自MS MVP 罗勇大神的Dynamics 365中部分账号使用系统明显缓慢怎么办?先这么干! 之前项目中也遇到过客户部分账户访问环境缓慢的问题,在此做个记录,等再碰到了,以此思路进行尝试

  4. View在测量时的MeasureSpec由什么决定?

    我们都知道系统要确定View的大小,首先得先获得MeasureSpec,再通过MeasureSpec来决定View的大小. MeasureSpec(32为int值)由两部分组成: SpecMode(高 ...

  5. 转载:使用redis+flask维护动态代理池

    githu源码地址:https://github.com/Germey/ProxyPool更好的代理池维护:https://github.com/Python3WebSpider/ProxyPool ...

  6. python 数据驱动ddt使用,需要调用下面的代码,请挨个方法调试,把不用的注释掉

    #!/usr/bin/env/python # -*- coding: utf-8 -*- # @Time : 2018/12/15 15:27 # @Author : ChenAdong # @Em ...

  7. Spring扫面路径配置不全导致异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 的原因

    运行Junit测试类 package cn.bgodata.x.zero.service; import org.junit.Test; import org.junit.runner.RunWith ...

  8. Windows Server 2016-Wbadmin命令行备份域控制器

    在上一章我们讲到Windows Server 2016-图形化备份域控制器的方法,本章我们聊聊如何通过命令行Wbadmin对域控制器进行备份.在Windows Server Active Direct ...

  9. 4.8Python数据处理篇之Matplotlib系列(八)---Figure的学习

    目录 目录 前言 (一)figure()方法的定义 (二)figure()方法的参数 (三)figure()方法的例子 1.多窗体绘图: 2.窗口得分别率 目录 前言 今天我们来学习一下plt.fig ...

  10. May 29. 2018 Week 22nd Tuesday

    Nothing is more terrible than ignorance in action. 最可怕的事情莫过于无知而行动. In today's digital age, we can ru ...