mysql - MySQLでデータベースにエイリアスを設定するにはどうすればよいですか?

原文 mysql schema alias

MySQLでデータベースをエイリアスする方法を探しています。その理由は、システムを停止することなく、稼働中の本番データベースの名前を変更できるためです。私はデータベースに新しい名前のエイリアスを付け、自由にデータベースに接続するコードを変更して展開し、最終的に古いエイリアスを削除できると思います。

これを達成するためのより良い方法がある場合はお知らせください。
答え
https://dev.mysql.com/doc/refman/5.7/en/symbolic-links-to-databases.htmlは言う


MySQLは、1つのディレクトリから複数のデータベースへのリンクをサポートしていません。


シンボリックリンクを使用して、データベースディレクトリを他の場所、たとえばdatadir外にリンクできます。

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


ただし、シンボリックリンクを使用して、あるデータベースディレクトリを別のMySQLデータベースの「エイリアス」にすることはできません。

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


その理由は、InnoDBがデータベース名とその他のメタデータを、テーブルスペースファイルに格納された独自のデータディクショナリ内に保持するためです。それを混同すると、あなたはあなたが望むものを得られません。

MySQLには、データベースをエイリアスするためのDDL構文はありません。
関連記事

php - バッチ挿入クエリ用の変数を動的にバインドするphp

mysql - AWS RDS中断された接続プロキシ

javascript - 動的テーブルからデータベースへのデータの送信-PHP

php - 中間テーブルmySQLの削除

mysql - 存在しない外部キー制約を削除するにはどうすればよいですか?

php - MySQL phpが列から列への値を見つける

mysql - MySQLがそのインデックスを選択する理由と、速度が遅すぎるのはなぜですか?

mysql - WHEREおよびANDに応じて2つの異なる行を更新する方法

mysql - RstudioをMySQLデータベースのAWSインスタンスに接続するにはどうすればよいですか?

python - Pythonの2つのMySQLデータベース