web-dev-qa-db-ja.com

mysqldumpおよびデータベースユーザーの使用

私は、アプリケーションデータベースで使用されるすべてを単一のスクリプトに作成するためにmysqldumpに必要なすべてのオプションをアセンブルしようとしています。これには、データベース自体とすべてのデータベースユーザー/パスワード/特権が含まれます。

ユーザーの部分を除いてすべて把握しました...現在使用しているのは次のとおりです:

mysqldump -h Host -u root -p \
    --add-drop-database --routines -B database_name > backup.sql

だから、私は何が欠けていますか?

34
Bobby B

データベースのユーザー/パスワード/特権はmysqlデータベースに保存されており、dumpコマンドでダンプされません。ダンプするデータベースのリストにもそのデータベースを追加する必要があります。

mysqldump ... --routines --databases database_name mysql > backup.sql

または単にすべてをダンプします:

mysqldump ... --routines --all-databases > backup.sql
44
Marc B

Mysqlデータベースをダンプするときは、忘れないでください:

 --flush-privileges  Emit a FLUSH PRIVILEGES statement after dumping the mysql
                     database.  This option should be used any time the dump
                     contains the mysql database and any other database that
                     depends on the data in the mysql database for proper
                     restore.
24
Markus T

だから、根本的な誤解がありました。ユーザーはデータベースに固有ではなく、サーバーレベルで作成されます。

次のクエリを使用して、既存のすべてのユーザーを表示できます。

SELECT * FROM mysql.user;

これを知っていれば、mysqldumpがユーザーに対して何もしてはいけないことは明らかです。ただし、ユーザーと権限のエクスポート/インポートへの回答が必要な場合は、次の記事を確認することをお勧めします-それは私を助けてくれました。

http://pento.net/2009/03/12/backing-up-permissions-for-individual-databases/

ボード上のノイズについては謝罪しますが、他の誰かが同じ誤解を持っている場合に備えて、投稿を残すことにしました。

10
Bobby B

あるMac OS X開発環境から新しい環境に移行するときの完全なプロセス。

0)新しいMacBookでMySQLの新しいバージョンを削除する

誤ってMySQL 8をインストールしたため、古いMacBookよりも新しいため、削除する必要がありました。

# Remove binaries
$ brew uninstall mysql

# Remove data/config that is leftover
$ rm -r /usr/local/var/mysql/

1)新しいMacBookに同じバージョンのMySQLをインストールします

# Install version that matched old MacBook
$ brew install [email protected]

# Because it is an old version, you have to do a special configuration step
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

# Start server
$ mysql.server start

2)古いMacBookのデータをダンプする

$ mysqldump -uroot --flush-privileges --routines --all-databases > complete_dump.sql

3)新しいMacBookでデータを復元する

$ mysql -p -uroot < complete_dump.sql
1
PaulMest