今天,搭建新购的阿里云ECS环境(ubuntu 16.04 LTS),需要将mysql的数据保存在新挂载的磁盘上(已挂载到/mnt下),先停掉mysql服务,然后查看mysql并数据保存的位置:

vi /etc/mysql/mysql.conf.d/mysqld.cnf

发现datadir=/var/lib/mysql, 这也就是数据所在目录,于是将它修改为datadir=/mnt/mysql, 然后保存, 最后将mysql保存的数据的拷贝到/mnt下:

cp -r /var/lib/mysql /mnt
chown -R mysql:mysql /mnt/mysql

完成拷贝后,本以为一切就绪,开启mysql服务:

systemctl start mysql

但是却发现启动失败,于是再去看看mysql的错误日志:

tail -f -n100 /var/log/mysql/error.log

发现错误信息如下:

[Warning] Can't create test file /mnt/mysql/iZwz9c03srb2lq9l374if5Z.lower-test

细想一下,mysql的配置应该没问题了啊。检查一下apparmor的配置:

vi /etc/apparmor.d/usr.sbin.mysqld

发现其中有如下配置:

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

坑爹啊,刚刚将mysql配置文件的datadir的/var/lib/mysql已经改了,但是却仍然被这儿限制了,于是,将它修改为:

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/mnt/mysql/ r,
/mnt/mysql/** rwk,

保存。重启apparmor服务:

service apparmor restart

然后再次启动mysql服务:

systemctl start mysql

服务终于启动成功了。。。

我的博客: javafan.cn

解决修改mysql的data_dir所引发的错误的更多相关文章

  1. mysql小知识点汇总---(时间与时间戳的转换, 修改mysql用户名密码, navicate 导入sql文件报错 1153)

    1. 时间与时间戳的转换 1.1 时间戳转时间 FROM_UNIXTIME(add_time, '%Y-%m-%d') 1.2 时间转时间戳 UNIX_TIMESTAMP('2015-04-29') ...

  2. ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法

    ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法 前几天卸掉了用了好多年的Windows,安装了Ubuntu12.04,就开始各种搭环境.今天装好了MySQ ...

  3. Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码

    由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 &g ...

  4. 【Mysql】修改mysql的字符集和默认存储引擎,解决数据入库乱码问题

    背景 在使用Python + Testlink做自动化的过程中,遇到了数据入库出现乱码的情况,后来通过修改字符集的方式解决了这个问题.下面的内容主要来自于一篇相关博文,博主做了细微的调整, 原文链接: ...

  5. 修改MySQL中的数据

    一:insert语句 1.介绍 在执行插入语句前,需要具有执行INSERT语句的INSERT权限. 2.准备环境 3.简单insert语句 4.插入多行 在这种形式中,每行的值列表用逗号分隔. 如果为 ...

  6. 修改MySQL默认字符集编码

    好记心不如烂笔头,很多东西当时没记下来,过了就忘了,下次用到时又得浪费好多时间才能解决.今天又遇到修改MySQL默认字符集编码的问题,折腾了半天解决了,赶快记录下来,以后就不用每次折腾了. 查看MyS ...

  7. 如何修改MySQL字符集

    首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...

  8. Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法

    但是当我们在试图对数据库中的数据进行备份或者将sql文件导入到我们的数据库时可能就会碰到编码的问题,在windows下安装mysql时我们可以在安装的时候就选择好整个数据库的编码方式(通常设置成utf ...

  9. 【先定一个小目标】怎么解决mysql不允许远程连接的错误

    最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to ...

随机推荐

  1. C语言 memcpy二维数组的复制

    今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了. 我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章 ...

  2. react-router3.x hashHistory render两次的bug,及解决方案

    先写一个简单App页面,其实就是简单修改了react-router的官方例子中的animations例子,修改了两个地方: 1.路由方式由browserHistory修改为hashHistory 2. ...

  3. asp.net MVC4总结

    MVC4构建例子 新建MVC4项目 在项目工程下面的App_Data文件夹下面添加新建项->数据->  Sql server 数据库文件Movies.mdf 新建movies.cs模型类 ...

  4. ubuntu ssh-keygen Permission denied

    ubuntu下生成github上的ssh keys,执行: ssh-keygen 直接执行: sudo chown user1:user1 /home/user1/.ssh -R 成功生成.

  5. Hangfire 使用笔记

    “巨人们”的地址 Hangfire Mysql: https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的sql语句有bug ...

  6. 配置IIS Express以便通过IP地址访问调试的网站

    问题背景 最近使用C#编写了一个WebService,希望通过Java进行调用.使用Visual Studio 2013调试WebService时,可以在浏览器中通过localhost地址访问WSDL ...

  7. CentOS 7 yum搭建 LAMP

    CentOS 7 搭建LAMP环境 1. Apache 安装 Apache 的软件包名称叫做httpd,因此安装Apache,使用以下命令 [root@localhost ~]# yum -y ins ...

  8. css伪元素用法大全

    本文主要讲解css伪元素的用法,有需要的朋友可以阅读此文.本文讲解的伪元素有:before,after. 什么是伪元素(Pseudo element)? 伪元素不是真正的元素,不存在与文档之中,所以j ...

  9. java Log日志规范

    Overview 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是 ...

  10. SQLDataSet中执行DDL语句

    在SQLDataSet中执行我们输入的DDL语句,并观察执行结果. 这里为了省输入的时间,从先输好的记事本中复制的SQL语句.效果图: ******************************** ...