+--------------------------------------------------------+ | | | 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下mysql更改数据存放目录_CentOS下mysql更改数据存放目录
最新推荐文章于 2021-02-23 04:09:16 发布