【问题标题】:MySQL tables on external hard drive外部硬盘驱动器上的 MySQL 表
【发布时间】:2011-09-03 06:56:54
【问题描述】:

我有大量文本数据需要导入 MySQL。我在 MacBook 上执行此操作,但没有足够的空间放置它,所以我想将它存储在外部硬盘驱动器中(此时我并不真正关心速度 - 这只是为了测试)。

最好的方法是什么?

  • 在外部硬盘驱动器上安装 MySQL(这在 Mac 上可行吗?)
  • 在笔记本电脑的硬盘上安装 MySQL 并将表放在外部(如何?)

【问题讨论】:

    标签: mysql database mysql-management hard-drive


    【解决方案1】:

    一个简单的技巧是创建一个符号链接,替换指向外部磁盘的当前 mysql 数据库文件位置。谷歌符号链接。

    示例用法是在您关闭 mysql 后,将旧的 mysql db 文件夹名称更改为其他名称,然后使用 ln 命令创建符号链接,如下所示

    ln -s [EXTERNAL DRIVE PATH] [MYSQL DB FOLDER PATH]
    

    然后将mysql db文件夹之前的所有内容移动到新位置。

    【讨论】:

    • 这已经完成了一半。您需要将以下行添加到“/etc/apparmor.d/usr.sbin.mysqld”\n /external/drive/path/r, /external/drive/path/** rwk,\n 否则你会得到:\n 121210 8:36:18 [警告] 无法创建测试文件 /external/drive/path/hostname.lower-test 121210 8:36:18 [警告] 无法创建测试文件 /external/drive/ path/hostname.lower-test mysqld: Can't change dir to '/external/drive/path/' (Errcode: 13) 121210 8:36:18 [ERROR] Aborting
    【解决方案2】:

    打开/etc/mysql/my.cnf 并找到datadir 的值。或者,您可以使用

    在 mysql 监视器中找到它
    mysql>   select @@datadir;
    

    停止mysql

    sudo systemctl stop mysql
    

    将数据从那里复制到您的外部驱动器

    sudo rsync -av /var/lib/mysql /mnt/myHDD/somedir/mysql
    

    修改datadirmy.cnf中的位置。
    再次启动mysql

    sudo systemctl start mysql
    

    验证一切是否仍然正常并删除原始数据目录。

    This page contains a more extensive guide 但它警告的所有其他问题都与我的树莓派无关。 IE。我跳过了它们,它起作用了。

    【讨论】:

      【解决方案3】:

      对于第二个选项,表空间可以解决问题:

      http://dev.mysql.com/doc/refman/5.1/en/create-tablespace.html

      【讨论】:

        【解决方案4】:

        用户 user658991 的答案已经完成了一半。

        添加软链接后,您需要将以下行添加到/etc/apparmor.d/usr.sbin.mysqld 的2 行下面的旧mysql 文件夹中。

        /path/to/mysql/folder/on/the/external/ r
        /path/to/mysql/folder/on/the/external/ ** rwk
        

        没有这两行,MySQL 无法开始抱怨:

        Can't create test file /path/to/mysql/folder/on/the/external/hostname.lower-test
        Can't create test file /path/to/mysql/folder/on/the/external/hostname.lower-test
        mysqld: Can't change dir to '/path/to/mysql/folder/on/the/external/' (Errcode: 13)
        

        重新启动 apparmor 以使更改生效。

        sudo invoke-rc.d apparmor restart
        

        这样,MySQL就可以正常启动了。

        【讨论】:

        • 是否可以在维护 HD 上的所有数据库并在外部 HD 上添加新数据库的同时完成此操作?
        • @aresnelupin 是的,您的所有数据库都将得到维护。
        • MySQL 版本 5.5.60-0+deb8u1 对我来说不是必需的。
        猜你喜欢
        • 2017-02-21
        • 2010-12-12
        • 2011-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-17
        • 1970-01-01
        相关资源
        最近更新 更多