一尘不染

如何在MySQL中为数据库命名?

mysql

我正在寻找一种在MySQL中为数据库命名的方法。原因是能够重命名实时生产数据库而不会导致系统停机。我想可以将数据库别名为新名称,随意更改和部署连接到数据库的代码,并最终删除旧别名。

如果有更好的方法可以做到这一点,请告诉我。


阅读 296

收藏
2020-05-17

共1个答案

一尘不染

https://dev.mysql.com/doc/refman/5.7/en/symbolic-links-to-
databases.html说

MySQL不支持将一个目录链接到多个数据库。

您可以使用符号链接将数据库目录链接到其他某个位置,例如,在datadir之外。

$ cd /var/lib/mysql
$ ln -s /other/dir/mydatabase .

但是您不能使用符号链接将一个数据库目录作为另一个MySQL数据库的“别名”:

$ cd /var/lib/mysql
$ ln -s `pwd`/mydatabase1 mydatabase2  # WRONG

原因是InnoDB将数据库名称和其他元数据保留在自己的数据字典中,并存储在表空间文件中。如果您混淆了,您将无法获得想要的东西。

MySQL没有任何别名数据库的DDL语法。

2020-05-17