在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
楼主最近还看过