Linux下MySQL如何修改数据库目录

分类:MySQL 时间:

在CentOS下使用yum安装MySQL默认的数据文件路径存放在/var/lib/mysql目录下,工作中项目希望给MySQL的数据文件单独放在/data/mysql下,方便后期管理和维护。下面PHP程序员雷雪松详细的讲解下如何在Linux下将MySQL目录下的数据文件迁移到其他目录。

1、停止MySQL服务

1
2
[root@MySQL /]# service mysqld stop
Shutting down MySQL. [ OK ]

2、把/var/lib/mysql整个目录复制到/data/mysql,并将该目录权限属主修改为mysql

1
2
[root@MySQL /]# cp -a /var/lib/mysql /data/mysql
[root@MySQL /]# chown -R mysql:mysql /data/mysql

3、修改MySQL相关配置文件
a、/etc/my.cnf

1
2
3
4
5
# The MySQL server
[mysqld]
port=3306
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock

b、/etc/init.d/mysqld

1
2
#get_mysql_option mysqld datadir "/var/lib/mysql"
get_mysql_option mysqld datadir "/data/mysql"

c、/usr/bin/mysqld_safe

1
2
#DATADIR=/var/lib/mysql注释此行
DATADIR=/data/mysql

d、/usr/lib64/mysql/mysql_config

1
2
3
4
#ldata='/var/lib/mysql'
ldata='/data/mysql'
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock

4.启动数据库

1
2
[root@MySQL /]# service mysqld start
Starting MySQL....

修改MySQL目录后其他异常问题:
1、MySQL启动失败,查看/var/log/mysqld.log,发现Can’t create test file /xxx/mysql/centos5.lower-test没有权限创建或读取文件。因为SeLinux阻止比如程序之类的访问他们不应该访问的文件和网络端口。
a、关闭SeLinux。

1
2
3
4
[root@MySQL /]# setenforce 0
[root@MySQL /]# vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled

b、使用chcon修改对象(文件)的安全上下文

1
[root@MySQL /]# chcon -R -t mysqld_db_t /data/mysql

2、MySQL连接时报错Can’t connect to local MySQL server through socket。修改MySQL配置文件/etc/my.cnf。

1
2
3
4
5
6
7
8
[root@MySQL /]# vi /etc/my.cnf
[client]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/storage/db/mysql/mysql.sock

标签:
来源:Linux下MySQL如何修改数据库目录

4 评论 “Linux下MySQL如何修改数据库目录

    翻墙方法 评论:
    2016年12月29日 下午1:15

    进来看看、不太了解

    卢松松博客 评论:
    2017年1月3日 下午1:14

    真技术我得好好的学学

    唐唐博客 评论:
    2017年1月23日 下午2:31

    嗯嗯 学习了 ,很详细的文章

    wintop 技术博客 评论:
    2017年7月20日 下午9:31

    谢谢分享,已经转载!

发表评论

电子邮件地址不会被公开。 必填项已用*标注