AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 131890
Accepted
asdmin
asdmin
Asked: 2010-04-14 01:29:58 +0800 CST2010-04-14 01:29:58 +0800 CST 2010-04-14 01:29:58 +0800 CST

mysql单库重定位

  • 772

我想知道是否可以在不同的文件系统位置操作不同的数据库。

背景:我们是一个托管服务,它为客户托管 mysql、web 和 smtp,但我们所有的服务(sql、smtp、http)都位于不同的位置。我们将为客户分配一个逻辑卷,它将容纳客户的邮件、网页和(希望如此)sql 数据库。已经涵盖了网页和邮件,但是我找不到可以让我指定数据库位置(mysql 存储数据库的目录)的配置设置。

让我强调一下,这里的目标是将不同的数据库重新定位到文件系统中的不同位置,而不是将它们从一个地方移动到另一个(单个)地方。

也请不要用软和硬符号链接来回答。;)

谢谢

mysql
  • 3 3 个回答
  • 167 Views

3 个回答

  • Voted
  1. Best Answer
    user40424
    2010-04-14T01:48:10+08:002010-04-14T01:48:10+08:00

    您想将不同数据库的数据文件放在不同的目录下并将它们一起加载到一个 MySQL 实例中,我这样说对吗?

    [mysqld] 块下有一个名为“datadir”的指令,通常用于确定数据库文件的存储位置。

    据我所知,mysql 不能为一个实例拥有多个“datadir”。您可以使用mysqld_multi拥有多个实例,并使用每个实例指向不同的数据目录。但是,当然,您必须为每个实例使用不同的端口。

    • 1
  2. Warner
    2010-04-14T05:38:42+08:002010-04-14T05:38:42+08:00

    在大多数情况下,如果没有专门的实例,您将很难做到这一点。如果您将一个单独的实例专用于它,则可以将该datadir指令与神性标识的不同 cnf 一起使用。

    我的第一个想法是鼓励或坚持客户使用 MyISAM。如果使用 MyISAM,您可以将数据库符号链接到新文件系统。相比之下,如果使用InnoDB,存储机制在不同的数据库之间是共享的,不能在逻辑上分开。请注意,客户仍然可以创建 InnoDB 表,除非您通过运行 MySQL 来阻止它skip-innodb。在共享环境中,这可能不现实。请注意,不同的引擎也有不同的性能。

    例如:

    • datadir是/usr/local/mysql/data
    • 新文件系统是/home/user1
    • 数据库是database1

    解决方案:

    • 符号链接/usr/local/mysql/data/database1到/home/user1/database1
    • 1
  3. deleted
    2010-04-14T09:36:52+08:002010-04-14T09:36:52+08:00

    简短的回答是,你不能用 MySQL 做你想做的事。

    很长的答案是,通常,托管服务提供商要么在提供 Web 服务的机器上的 localhost 上运行 MySQL。这消除了将 mysql 数据从一台机器移动到另一台机器的网络带宽。它不允许在没有额外机器的情况下进行集群。

    或者,托管服务提供商将拥有一个 MySQL 服务器池,通常在使用复制/心跳的主/辅助服务器中,或者使用 MySQL 集群的主服务器/主服务器/主服务器。在一个特定的 MySQL“集群”被填满后,新的数据库就会在一个新的集群上创建。为了保持某种可用性,客户端在创建数据库时被分配 mysql.domain.com,这样他们就不必记住他们在 mysql401.hostname.com 上。如果你真的想的话,这允许你也运行 MySQL4 和 MySQL5 集群。

    • 1

相关问题

  • 开源与专有关系 db mgt 系统的优缺点是什么?

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

  • 如何移动 MySQL 的数据目录?

  • 通过 VPN 连接什么是远程服务器 IP?

  • mysql崩溃

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve