mysql - 如何在 MySQL 中为数据库添加别名?

标签 mysql schema alias

我正在寻找一种在 MySQL 中为数据库添加别名的方法。原因是能够在不关闭系统的情况下重命名实时生产数据库。我想我可以将数据库别名为新名称,在闲暇时更改和部署连接到它的代码,并最终删除旧别名。

如果有更好的方法来完成此任务,请告诉我。

最佳答案

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

MySQL does not support linking one directory to multiple databases.

您可以使用符号链接(symbolic link)将数据库目录链接到其他位置,例如 datadir 之外。

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

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

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

原因是 InnoDB 将数据库名称和其他元数据保留在其自己的数据字典中,存储在表空间文件中。如果你混淆了它,你就不会得到你想要的。

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

关于mysql - 如何在 MySQL 中为数据库添加别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51869143/

相关文章:

mysql - 参数 RowsAffected 不可靠。为什么?

c# - 如何将自动增量创建的一个表中的主键插入到第二个表中作为外键?

mysql - 当有 3 个日期列时按日期排序

php - MySQL 中存储数组与关联表

java - XStream 短动态别名

xml - XSD : model properties (name/value pairs)

java - 具有多个模式的 WSDL 的自定义解析和打印方法

mysql - 无法更改或删除 MySQL 中的表

bash - 无法让 expand_aliases 生效

mysql - 使用别名格式化 Where 子句的正确方法 - Laravel