著名なカブロソコミュニティへのご挨拶! ご存知のように、MySqlサーバーには、MySqlユーザーとその権限を別のサーバーに転送するためのメカニズムが組み込まれていません。 ネットワークには既製のソリューションはほとんどありません。この短い記事では、MySqlユーザーとその権限をあるサーバーから別のサーバーに数分で移行します。
このタスクの関連性はあまり意味がありません。 データベース自体をさまざまな方法で転送できる場合、ユーザーと一緒に転送すると、データベースが多数ある場合に問題が発生します。
一般に、タスクは簡単です。MySqlで動作するプログラミング言語で、mysqlデータベースからユーザーとその権限を抽出するスクリプトを実行します。 phpを使用する方が簡単です。
Zaid Daba'eenの
要点に基づきます
MySqlのバージョン
mysql --version
5.6以上、たとえば5.7
次に、行のコメントを解除します。
そしてコメントアウト:
$statement = $link->prepare("select `user`, `host`, `password` FROM `user`");
それ以外の場合は、そのままにしておきます。
MySql 5.7以降では、ユーザーパスワードはauthentication_stringフィールドに保存され、それより前にpasswordフィールドに保存されます。
スクリプトを実行して実行し、出力をコピーすると、次のようになります。
CREATE USER 'root'@'localhost' IDENTIFIED BY '*MD5-HASH'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION; CREATE USER 'mysql.sys'@'localhost' IDENTIFIED BY '*MD5-HASH'; GRANT USAGE ON *.* TO 'mysql.sys'@'localhost'; GRANT TRIGGER ON `sys`.* TO 'mysql.sys'@'localhost'; GRANT SELECT ON `sys`.`sys_config` TO 'mysql.sys'@'localhost'; CREATE USER 'debian-sys-maint'@'localhost' IDENTIFIED BY '*MD5-HASH'; GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' WITH GRANT OPTION; CREATE USER 'your_user'@'localhost' IDENTIFIED BY '*MD5-HASH'; GRANT ALL PRIVILEGES ON `your_DB`.* TO 'your_user'@'localhost' WITH GRANT OPTION;
sinから、スクリプトを削除し、結果の出力を調べます。 ルートユーザーを含むシステムユーザーを持つすべてのエントリを削除します。
何らかの方法で、新しいMySQLサーバーにデータを追加します。
それだけです! この問題を解決する方法についてのコメントを購読解除します。 建設的な批判は歓迎します。