CentOS下mysql更改数据存放目录

+--------------------------------------------------------+ | | | CentOS下MysqL更改数据存放目录 | | | +--------------------------------------------------------+ MysqL认的数据文件存储目录为/var/lib/MysqL,假设要将目录迁移到/home/data下,需要以下步骤: 1、home下创建data目录 cd /home mkdir data 2、把MysqL服务停止掉 service MysqLd stop 或者 MysqLadmin -uroot -p shutdown 3、把/var/lib/MysqL整个目录移到/home/data mv /var/lib/MysqL /home/data/ 4、编辑my.cnf配置文件 如果/etc/目录下没有my.cnf配置文件,请到/usr/share/MysqL/下找*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf cp /usr/share/MysqL/my-medium.cnf /etc/my.cnf 5、编辑MysqL配置文件/etc/my.cnf 修改[MysqLd]下面的datadir和socket 修改前datadir=/var/lib/MysqL socket=/var/lib/MysqL/MysqL.sock 修改后datadir=/home/data/MysqL socket=/home/data/MysqL/MysqL.sock 【建议把以前的配置用#注释掉,自己重新写两条配置】 6、修改MysqL启动脚本/etc/init.d/MysqL 修改前datadir=/var/lib/MysqL 修改后datadir=/home/data/MysqL 【如果是centos】还需要修改/usr/bin/MysqLd_safe(如果有) 最后,做一个MysqL.sock的软连接 先在/var/lib中创建MysqL文件夹 cd /var/lib mkdir MysqL ln -s /home/data/MysqL/MysqL.sock /var/lib/MysqL/MysqL.sock 7、重启MysqL服务 service MysqLd restart =========================================== 如果能正常启动,并且以前的数据都还在的话,就说明成功了。如果不成功,继续 8、改变数据目录的所有者、权限 改变数据库的归属为MysqL chmod -R MysqL:MysqL /home/data/MysqL/ 改变数据库目录属性为700 chmod 700 /home/data/MysqL/testdb 改变数据库中数据的属性为660 chmod 660 /home/data/MysqL/test/* 【错误解决方案】 1、在centos上,如果MysqL是通过yum的方式安装的,那么以上的修改还没有结束 原因:MysqL配置文件有很多处,除了更爱/etc/my.cnf文件之外,还需要修改/usr/lib64/MysqL/MysqL_config 这个文件里面一行ldata=/var/lib/MysqL和socket=/var/lib/MysqL/MysqL.sock这里也需要改掉 2、另外,还有权限问题,查看/var/log/MysqLd.log,发现Can't create test file /xxx/MysqL/centos5.lower-test 这里是因为没有权限创建或读取文件解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service MysqLd start 发现OK了。 另外一个办法是restorecon -FRv /home/data/MysqL,或者chcon -R -t MysqLd_db_t /home/data/MysqL

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native