Ubuntu修改MySQL数据库datadir目录(并导入导出数据)

mysqldump -u root -p123456 --all-databases > all.sql

mysql -uroot -p123456 < "/home/blue/all.sql"

 

转载:https://blog.csdn.net/shennongminblog/article/details/78858660

概述

本文描述了在Ubuntu 16.04系统下修改mysql-server-5.7数据库datadir目录的详细步骤。目标:将数据库目录datadir从/var/lib/mysql修改到/home/database/mysql。

系统信息:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

$ uname -a
Linux Ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

    1
    2
    3
    4
    5
    6
    7
    8
    9

mysql-server版本:

Server version: 5.7.11-0ubuntu6 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

    1
    2
    3
    4
    5
    6
    7

步骤

以下步骤需要停止mysql服务并假设用户拥有管理员权限。
一、停止mysql服务

sudo service mysql stop

    1

二、新建目录并移动现有数据库

    重要提示:强烈建议先备份/var/lib/mysql文件夹,数据无价!!!强烈建议先备份/var/lib/mysql文件夹,数据无价!!!强烈建议先备份/var/lib/mysql文件夹,数据无价!!!

创建新的数据库目录:

sudo mkdir /home/database

    1

移动当前数据到新目录:

sudo mv /var/lib/mysql /home/database/

    1

同时需要删除日志文件:

sudo rm /home/database/mysql/ib_logfile0
sudo rm /home/database/mysql/ib_logfile1

    1
    2

三、修改mysql配置文件

修改/etc/mysql/mysql.conf.d/mysqld.cnf中datadir的值为:

datadir = /home/database/mysql

    1

四、修改apparmor配置

修改/etc/apparmor.d/usr.sbin.mysqld中的Allow data dir access部分,改后如下:

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
   /home/database/mysql/ r,
   /home/database/mysql/** rwk,

    1
    2
    3
    4
    5

重新加载apparmor服务使修改生效:

sudo service apparmor reload

    1

五、修改mysql-systemd-start

修改/usr/share/mysql/mysql-systemd-start文件,将类似/var/lib/mysql的内容全部修改为/home/database/mysql。
六、启动mysql服务

sudo service mysql start

    1

七、验证

进入mysql命令行,执行show variables like '%datadir%';,可以看到如下信息:

mysql> show variables like '%datadir%';
+---------------+-----------------------+
| Variable_name | Value                 |
+---------------+-----------------------+
| datadir       | /home/database/mysql/ |
+---------------+-----------------------+
1 row in set (0.00 sec)

    1
    2
    3
    4
    5
    6
    7

表示修改成功。恭喜你!
附加说明

当mysql服务无法启动时,可以通过datadir目录对数据库进行备份。直接完全拷贝保存即可。可以在当前主机或其它主机(最好mysql版本相同)上直接将原有datadir目录替换即可完成数据恢复。
---------------------
作者:神农民
来源:CSDN
原文:https://blog.csdn.net/shennongminblog/article/details/78858660
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值