zhmg23

我们是如此的不同

解决ubuntu下修改MySQL数据存储路径不生效问题

一、问题描述

 Ubuntu12.04下,利用apt-get install mysql-server安装的MySQL,版本是5.5的,因担心后期数据不断上升,就想把mysql的数据存储路径调整为其他目录,也就是datadir参数的配置,可是调整之后,show databases报错了,显示:ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

而且mysql> show variables like '%data%';  查看datadir路径,仍是修改前的,下面分别就修改方法与解决办法说一下。



二、ubuntu下修改apt-get方式安装的MySQL数据存储路径

1、ubuntu下利用 apt-get install mysql-server安装的MySQL数据存放的默认目录

数据库存放目录:               /var/lib/mysql/

相关配置文件存放目录:     /usr/share/mysql

相关命令存放目录:             /usr/bin(mysqladmin mysqldump等命令)

启动脚步存放目录:            /etc/init.d/mysql   


2、停止 mysql 的运行

/etc/init.d/mysql stop


3、修改 MySQL 的配置文件

vi /etc/mysql/my.cnf

datadir 修改为:

datadir = /data/mysql


4、mysql的数据目录复制到更改的位置:

cp -rp /var/lib/mysql /data/mysql


5、修改控制MySQL启动文件

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

把这两行屏蔽了

/var/lib/mysql r,

/var/lib/mysql/** rwk,

新增:

/data/mysql r,

/data/mysql/** rwk,


保存退出后,重启

/etc/init.d/apparmor restart


6、启动MySQL

/etc/init.d/mysql start


三、问题重现及解决

1、修改完成后,启动MySQL进入也正常,但show databases时,报错:ERROR 1018 (HY000): Can't read dir of '.' (errno: 13) 

解决ubuntu下修改MySQL数据存储路径不生效问题 - zhm - 合肥运维


 然后各种搜索、查询都不能理解,最后在serverfault上找到灵感解决,原来是MySQL有个进程,一直没有被杀死

解决ubuntu下修改MySQL数据存储路径不生效问题 - zhm - 合肥运维

 用ps aux |grep mysql  便能看到!


解决办法:就是在上面修改好的基础上,kill 此进程的pid  然后把mysql 重新启动一下!问题就解决了!如下图所示:

解决ubuntu下修改MySQL数据存储路径不生效问题 - zhm - 合肥运维

 

以上就是修改MySQL数据存储路径,show databases 报错:ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)  的解决办法!

评论