メインコンテンツまでスキップ

MySQL から SQLite へデータベースを変換する方法

MySQL のデータベースを SQLite へ変換する必要があったので、手順を残しておきます。

環境は以下の通りです。

  • CentOS Stream 8
  • MariaDB 10.3.27(MySQLでも可)
  • SQLite 3.26.0

SQLite3 がインストールされていない場合、下記のコマンドでインストールしておいて下さい。

dnf -y install sqlite

手順

下記のコマンドを実行して、データベースをdumpしてください。

mysqldump --skip-extended-insert --compact データベース名 > dump.sql

認証が必要な場合は下記のコマンド使って下さい。下記のコマンドではユーザー名が root になってるので、適切なユーザー名に変更して下さい。

mysqldump --skip-extended-insert --compact -u root -p データベース名 > dump.sql

dump が完了したら、下記のコマンドで mysql2sqlite というスクリプトダウンロードして下さい。

wget https://raw.githubusercontent.com/dumblob/mysql2sqlite/master/mysql2sqlite

mysql2sqlite は MySQL から SQLite へと変換してくれるやつです。詳細は GitHub を確認して下さい。

スクリプトがダウンロード完了したら、下記のコマンドでスクリプトを実行して下さい。

$ ./mysql2sqlite dump.sql | sqlite3 sqlite.db

スクリプトの実行が完了すると、ディレクトリ内に sqlite.db が生成されています。