CentOS7修改MySQL5.7的数据存放路径

MySQL安装后默认安装在/var/lib/mysql目录下
配置文件为/etc/my.cnf
根据场景,需要将/var/lib/mysql移动到/home/data/mysql

#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock

移动过程

1、停止mysql服务

systemctl stop mysqld

2、查看状态

systemctl status mysqld

3、创建新目录

mkdir /usr/local/mysql

4、移动数据

mv /var/lib/mysql/* /usr/local/mysql/

5、修改新路径

chown mysql:mysql -R /usr/local/mysql

6、修改配置文件/etc/my.cnf

[mysqld]
...
datadir=/usr/local/mysql
socket=/usr/local/mysql/mysql.sock
...

[client]
...
# 不增加这一行,服务可以启动,本地可以连接,但navicat连接不了
socket=/usr/local/mysql/mysql.sock
...

7、启动数据库

[root@master data]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

[root@master data]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Sun 2020-10-18 16:35:58 CST; 11s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 116767 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 116666 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 238585 (code=exited, status=0/SUCCESS)

Oct 18 16:35:58 master.zimdc systemd[1]: Failed to start MySQL Server.
Oct 18 16:35:58 master.zimdc systemd[1]: Unit mysqld.service entered failed state.
Oct 18 16:35:58 master.zimdc systemd[1]: mysqld.service failed.
Oct 18 16:35:58 master.zimdc systemd[1]: mysqld.service holdoff time over, scheduling restart.
Oct 18 16:35:58 master.zimdc systemd[1]: start request repeated too quickly for mysqld.service
Oct 18 16:35:58 master.zimdc systemd[1]: Failed to start MySQL Server.
Oct 18 16:35:58 master.zimdc systemd[1]: Unit mysqld.service entered failed state.
Oct 18 16:35:58 master.zimdc systemd[1]: mysqld.service failed.

8、查看错误原因

[root@master keepalived]# journalctl -xe
                                             
Oct 18 16:45:04 master.zimdc systemd[1]: mysqld.service holdoff time over, scheduling restart.
Oct 18 16:45:04 master.zimdc systemd[1]: start request repeated too quickly for mysqld.service
Oct 18 16:45:04 master.zimdc systemd[1]: Failed to start MySQL Server.
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysqld.service has failed.
-- 
-- The result is failed.
Oct 18 16:45:04 master.zimdc systemd[1]: Unit mysqld.service entered failed state.
Oct 18 16:45:04 master.zimdc systemd[1]: mysqld.service failed.
Oct 18 16:45:04 master.zimdc setroubleshoot[154023]: SELinux is preventing /usr/sbin/mysqld from write access on the directory mysql. For complete SELinux messages run: sealert -l a0b50a36-99fd-4649-a81a-2ed658f1f9dc
Oct 18 16:45:04 master.zimdc python[154023]: SELinux is preventing /usr/sbin/mysqld from write access on the directory mysql.
                                             
                                             *****  Plugin catchall (100. confidence) suggests   **************************
                                             
                                             If you believe that mysqld should be allowed write access on the mysql directory by default.
                                             Then you should report this as a bug.
                                             You can generate a local policy module to allow this access.
                                             Do
                                             allow this access for now by executing:
                                             # ausearch -c 'mysqld' --raw | audit2allow -M my-mysqld
                                             # semodule -i my-mysqld.pp

9、根据提示,是SELinux阻止了服务的启动,关闭SELinux来解决

[root@manager ~]# setenforce 0
[root@manager ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

10、再次启动

[root@master ~]# systemctl start mysqld
[root@master ~]# systemctl status mysqld

至此,数据存放路径修改工作完成

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的名字是雪冬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值