N、uo

一次mysql储存地址修改

关闭mysql服务

service mysql stop

创建新文件夹并且赋予mysql用户

mkdir /mysql_data

chown mysql:mysql /mysql_data

拷贝旧地址到新地址

cp -a /var/lib/mysql /mysql_data

找到并且修改mysql配置文件

关键词datadir,socket

datadir=/mysql_data/mysql

socket=/mysql_data_mysql/mysql.sock

这里socket可改可不改,若需要删除旧地址数据则需要改

启动mysql服务

service mysql start

————————————————————————

这里启动失败遇到一个报错

Job for mariadb.service failed because the control process exited with error code.

See "systemctl status mariadb.service" and "journalctl -xe" for details.

使用systemctl status mariadb.service和journalctl -xe分别查看日志后发现,报错位置不一定会高亮,需要自己仔细查看

Can't create test file

这里涉及底层知识,mysql在每次启动时都会自行创建一个test数据库以用于检测服务运行正常

这里无法创建,属于没有权限问题

检查文件所属和文件递归权限发现没有问题都使用了最暴力的chmod -R 777 来赋予权限

查找很多文案后发现

mariadb.service 在启动的时候有很多保护机制【个人习惯用mariadb,比mysql强大一些】

其中的一条保护机制

ProtectHome=true

lib/systemd/system/mariadb.service

需要修改为false,因为这次是将数据库搬迁到home目录下边,这里的保护机制阻止了MySQL在home下边创建目录的行为

修改为false之后,重载systemctl的配置

systemctl daemon-reload

之后再 开启 mysql 服务即可

上一篇 下一篇
评论
©N、uo | Powered by LOFTER