MySQL(MariaDB)から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を確認して下さい。

dumblob/mysql2sqlite
Converts MySQL dump to SQLite3 compatible dump. Contribute to dumblob/mysql2sqlite development by creating an account on GitHub.

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

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

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

以上で変換完了です。