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)将数据库目录链接到其他位置,例如数据目录之外。

$ 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/35022368/

相关文章:

MySQL - 在一个表中插入行,然后使用自动增量 ID 更新另一个表

python - 在python中序列化从mysqldb返回的结果集

Perl、LibXML 和模式

php - 横幅印象跟踪 - 数据库设计

mysql - 命令不能用作别名

读取第一行所有列的SQL命令

php - 比较数据库项目以查找重复项

sql-server - RESTORE 过程是否依赖于架构?

generics - TypeScript 中是否可以使用泛型类型别名?

ios - 在应用程序包中添加符号链接(symbolic link)