一般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 年份左右点击加减

    默认为今年 var date = new Date; $scope.year = date.getFullYear(); //年份减 $scope.yearPrev = function(){ $sc ...

  2. angularJS中控制器和作用范围

    $scope是$rootScope的子作用域控制对象,$rootScope的id为1,其他的为2,3,4... 不同的控制器之间,所对应的作用域控制对象$scope,之间是相互隔离的,如果要共享数据, ...

  3. Brute-forced Euclid Distance Transform

    Sepearable 2D EDT, going to extend to 3D in order to calculate the Signed Distance Function(Field) C ...

  4. C#:读取视频的宽度和高度等信息

    读取方式:使用ffmpeg读取,所以需要先下载ffmpeg.网上资源有很多. 通过ffmpeg执行一条CMD命令可以读取出视频的帧高度和帧宽度信息. 如图: 蓝线框中可以看到获取到的帧高度和帧宽度. ...

  5. mumu模拟器安装xposed--如何在android模拟器上进行root

    问题描述 安装xposed表示failed to access root权限,新版的mumu模拟器没有了root选项,需要自己root. 1.先关掉应用兼容性,然后重启 电脑一般都是x86的,mumu ...

  6. Nginx 安装与部署配置以及Nginx和uWSGI开机自启

    下载 官方网站:https://nginx.org/en/download.html Windows下安装 安装 下载后解压(切记不能含有中文路径!!),文件结构如图(我解压的路径就有中文,记得拷贝放 ...

  7. Spark MLlib线性回归代码实现及结果展示

    线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 这种函数是一个或多个称为回归系数的模型参数的线性组合.只有 ...

  8. ASP.NET MVC概述及第一个MVC程序

    一.ASP.NET 概述        1. .NET Framework 与 ASP.NET                .NET Framework包含两个重要组件:.NET Framework ...

  9. Linux CFS调度器之负荷权重load_weight--Linux进程的管理与调度(二十五)

    1. 负荷权重 1.1 负荷权重结构struct load_weight 负荷权重用struct load_weight数据结构来表示, 保存着进程权重值weight.其定义在/include/lin ...

  10. Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)

    Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别 ...