mysqldumpを使わずにMySQLデータベースをダンプするにはどうすればいいですか?Pythonでmysqldumpを使わずにMySQLデータベースをダンプする方法
答えて
私はこの問題を解決しました。
import MySQLdb
import os
import datetime
con = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')
cur = con.cursor()
cur.execute("SHOW TABLES")
data = ""
tables = []
for table in cur.fetchall():
tables.append(table[0])
for table in tables:
data += "DROP TABLE IF EXISTS `" + str(table) + "`;"
cur.execute("SHOW CREATE TABLE `" + str(table) + "`;")
data += "\n" + str(cur.fetchone()[1]) + ";\n\n"
cur.execute("SELECT * FROM `" + str(table) + "`;")
for row in cur.fetchall():
data += "INSERT INTO `" + str(table) + "` VALUES("
first = True
for field in row:
if not first:
data += ', '
data += '"' + str(field) + '"'
first = False
data += ");\n"
data += "\n\n"
now = datetime.datetime.now()
filename = str(os.getenv("HOME")) + "/backup_" + now.strftime("%Y-%m-%d_%H:%M") + ".sql"
FILE = open(filename,"w")
FILE.writelines(data)
FILE.close()
少しのテストからうまくいくと思われます。
'pymysql'は純粋なPythonでPython 2.7とPython 3.Xで動作する' MySQLdb'に代わるものです。 –
それは良い努力だが悲しい部分です、MySQLdb does notはデータベースをダンプするための呼び出しを提供する代わりに、クエリを実行し、手動でファイルに手動で追加する必要があるでしょう –
ちょうど追加する: 'data'変数に追加するのではなく、ファイルにまっすぐ書いてシステムのメモリを節約することができます。 ex: 'FILE.write(" DROP TABLE ... " – Aaron
私はMySQLdbをアドバイスします - それはPython用のMySQL APIを提供します。
ただし、ほとんどの場合、APIはmysqldump
への間接呼び出しを行います。 mysqldump
に直接電話するか、まったく電話したくないですか?
Dump tables and dataをチェックして、MySQLdbなしでテーブル構造とデータをダンプする正確な手順が表示されるようにすることもできます。
- 1. mysqlを使ってデータベースを別のデータベースにダンプする方法は?
- 2. SELECT DATABASE()を使わずにMySQLでデータベース名を取得
- 3. mysqldump関数がmysqlデータベースにインポートする正しい方法は何ですか?
- 4. 「a href」を使わずにリンクをクリックする方法[Selenium + Python]
- 5. ビジュアルfoxproを使用してmysqlにデータベースをダンプする
- 6. GAMSを使わずにPythonでGDXファイルを読む方法
- 7. PHPを使わずにApacheコードを使ってMysqlデータベースにアクセスできます
- 8. SQLiteデータベースの内容をコマンドラインを使わずにダンプするにはどうすればよいですか?
- 9. ENGINEを指定せずにmysqldumpをインポートする方法
- 10. mysqldumpをmysqlにパイプする
- 11. neo4jデータベース全体をダンプする方法
- 12. mysqldumpを使用して別のコンピュータにあるmysqlにデータベースを復元する
- 13. mysqldump - LFの代わりに改行を取得する方法
- 14. mysqlのベストバックアップ方法?ターゲットディレクトリにバックアップをダンプする方法
- 15. 構造をダンプする前にmysqldumpが停止する
- 16. GUIツールキットを使わずにPythonでウィンドウを作成する方法
- 17. mysqldumpを使わないmysqldデータベースの自動ダウンロード
- 18. アップルの電子メールアプリを使わずに私の電子メールまたはMYSQLデータベースにテキストを送る方法
- 19. views.pyファイルを使用してmysqlデータベースをダンプできない
- 20. リモートマシンからMySQLダンプを使用する方法
- 21. Amazon RDSでOracleデータベースにローカル.dbmをダンプする方法
- 22. localhost:3307でmysqldumpを使う方法は?
- 23. PythonでMySQLデータベースにデータを格納する方法
- 24. DBをmysqldumpでダンプし、テーブルパーティション情報をスキップできますか?
- 25. MySQLテーブルをCSVファイルにダンプし、Pythonスクリプト
- 26. AJAXの有無にかかわらず、mysqlデータベースとPHPセッションを使用してログイン/ログアウトする方法は?
- 27. len()を使わずにpythonでリストの長さを見つける方法
- 28. Python 2.7でクラスを使わずにデコレータとしてコンテキストマネージャを作る方法は?
- 29. CMakeを使わずにVisual Studioでopencvをコンパイルする方法
- 30. WS_EX_LAYEREDを使わずにC++でクリックスルーウィンドウを作成する方法
なぜmysqldumpを使用しないのですか? mysqldumpへのシステムコールの作成は、これまでにない最も簡単な方法になります。 –
これはプログラミングに関する質問ではありません。これは「私の問題を不必要に困難にする方法」です。 –
私は自分のアプリケーションを非常に小さな依存性でポータブルにしたい。私の理由はMySQLdumpを使用していません –