Linux下MySQL如何修改数据库目录
在CentOS下使用yum安装MySQL默认的数据文件路径存放在/var/lib/mysql目录下,工作中项目希望给MySQL的数据文件单独放在/data/mysql下,方便后期管理和维护。下面雷雪松详细的讲解下如何在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 |
2016年12月29日 下午1:15
进来看看、不太了解
2017年1月3日 下午1:14
真技术我得好好的学学
2017年1月23日 下午2:31
嗯嗯 学习了 ,很详细的文章
2017年7月20日 下午9:31
谢谢分享,已经转载!
2019年5月9日 下午7:00
非常精彩的文章,引人入胜,痛快淋漓。感谢楼主分享。
2019年5月9日 下午9:22
好文!转载了。
2019年5月10日 下午1:12
前排留名,先回再看。等了好久额的新文章。
2019年5月10日 下午4:25
写得太精彩了,以这样的篇幅写了这么大跨度的文章,精品。向楼主学习!
2019年5月10日 下午5:01
写得太精彩了,以这样的篇幅写了这么大跨度的文章,精品。向楼主学习!
2022年6月28日 下午2:22
谢谢分享