Можно ли конвертировать из MySQL в SQLite с помощью бесплатного инструмента в windows?
Преобразование MySQL в SQlite
Ответ 1
Существует mysql2sqlite.sh script на GitHub
Как описано в заголовке, script можно использовать следующим образом:
./mysql2sqlite.sh myDbase | sqlite3 database.sqlite
альтернативы
- обновленная версия https://github.com/dumblob/mysql2sqlite
- Более простой script был опубликован в Форумы MySQL
Ответ 2
Вот список конвертеров:
Ссылка теперь не работает, поэтому она доступна только через снимок на archive.org, последнее обновление 2011 года.
Альтернативный метод, который будет работать даже в Windows, но редко упоминается: используйте класс ORM, который абстрагирует вас от конкретных различий в базе данных. например, вы получаете их в PHP (RedBean), Python (слой Django ORM, Storm, SqlAlchemy), Ruby on Rails (ActiveRecord), Cocoa (CoreData) и т.д.
то есть вы могли бы сделать это:
- Загрузка данных из исходной базы данных с использованием класса ORM.
- Храните данные в памяти или сериализуйте на диск.
- Сохраните данные в целевой базе данных, используя класс ORM.
Ответ 3
Sequel (Ruby ORM) имеет инструмент командной строки для работы с базами данных, у вас должен быть установлен рубин, а затем:
$ gem install sequel mysql2 sqlite3
$ sequel mysql2://user:[email protected]/database -C sqlite://db.sqlite
Ответ 4
Не каждая конвертация БД может быть преобразована. MySQL более сложный и многофункциональный, чем SQLite. Однако, если ваша схема достаточно проста, вы можете сбросить ее в файл SQL и попытаться импортировать ее/загрузить в SQLite DB.
Ответ 5
С этой страницы: http://osenxpsuite.net
скачать SQLite2009 Pro Enterprise Manager
Это бесплатно. Он может импортировать данные из базы данных Mysql. Я просто преобразовал базу данных 17M. Это прекрасно.
Ответ 6
Я нашел идеальное решение
Во-первых, вам нужен этот скрипт (поместите его в файл с именем "mysql-to-sqlite.sh"):
#!/bin/bash
if [ "x$1" == "x" ]; then
echo "Usage: $0 <dumpname>"
exit
fi
cat $1 |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
grep -v ' PRIMARY KEY ' |
sed '/^SET/d' |
sed 's/ unsigned / /g' |
sed 's/ auto_increment/ primary key autoincrement/g' |
sed 's/ smallint([0-9]*) / integer /g' |
sed 's/ tinyint([0-9]*) / integer /g' |
sed 's/ int([0-9]*) / integer /g' |
sed 's/ character set [^ ]* / /g' |
sed 's/ enum([^)]*) / varchar(255) /g' |
sed 's/ on update [^,]*//g' |
sed 's/\\r\\n/\\n/g' |
sed 's/\\"/"/g' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
$a=$1;
s/\\'\''/'\'\''/g;
s/\\n/\n/g;
s/\),\(/\);\n$a\(/g;
}
' > $1.sql
cat $1.sql | sqlite3 $1.db > $1.err
ERRORS='cat $1.err | wc -l'
if [ $ERRORS == 0 ]; then
echo "Conversion completed without error. Output file: $1.db"
rm $1.sql
rm $1.err
else
echo "There were errors during conversion. Please review $1.err and $1.sql for details."
fi
Затем создайте копию своей базы данных:
[email protected]:~$ mysqldump -u root -p --compatible=ansi --skip-opt generator > dumpfile
А теперь запустите преобразование:
[email protected]:~$ mysql-to-sqlite.sh dumpfile
И если все пойдет хорошо, теперь у вас должен быть файл dumpfile.db, который можно использовать через sqlite3.
[email protected]:~$ sqlite3 dumpfile.db
SQLite version 3.6.10
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
dg_cities dg_forms dg_surnames
dg_counties dg_provinces dg_user_accounts
dg_countries dg_provinces_netherlands
dg_first_names dg_states
Ответ 7
Sqlite имеет официальный список инструментов преобразования.
Ответ 8
Существуют разные способы сделать это. У меня также была эта проблема, и я обыскал много. Затем я получил простой способ конвертировать MySql в Sqlite.
Следуйте этим инструкциям:
Шаг 1. Сначала вам нужно установить браузер SqliteDB (очень маленький и быстрый просмотр таблиц и данных).
Шаг 2: откройте свой MySql файл в "Блокноте" или было бы здорово, если вы откроете в Notepad ++
Шаг 3. Удалите первые дополнительные строки. Содержит информацию или запросы и сохраните ее.
Шаг 4: Откройте Sblite Db Brower, создайте базу данных, затем таблицы и те же типы, что и в базе данных Mysql.
Шаг 5: в строке меню браузера Sqlite Db выберите файл- > затем импортируйте файл Mysql, который вы сохранили.
Он легко преобразуется в диалоговое окно Sqlite After Warning.
Если ошибка удаляется, добавьте дополнительные строки, если ваш файл Mysql.
Вы также можете установить программное обеспечение Mysql to Sqlite Converter на пробную основу. Но информация, которую я даю для преобразования, - это время жизни.
Вы также можете проверить этот учебник для получения дополнительной справки: https://www.youtube.com/watch?v=UcAHsm9iwpw
Надеюсь, что эта справка.
Ответ 9
Я столкнулся с той же проблемой около 2 дней назад, когда мне пришлось преобразовать базу данных MySQL 20GB+ в SQLite. Это была далеко не простая задача, и я закончил тем, что написал этот скрипт на Python, который делает эту работу.
Плюсом написанного на Python является то, что он кроссплатформенный (в отличие от скрипта shell/bash) и имеет только минимальные зависимости (которые можно легко установить с помощью pip install
). Он использует генераторы и фрагменты обрабатываемых данных и поэтому очень эффективно использует память.
Я также приложил некоторые усилия для правильного перевода большинства типов данных из MySQL в SQLite.
Сценарий вызывается через командную строку, но также может использоваться в качестве стандартного класса Python, который можно включить в более крупную оркестровку Python.
Вот как вы это используете:
usage: mysql2sqlite.py [-h] [-f SQLITE_FILE] [-u MYSQL_USER]
[-p MYSQL_PASSWORD] [-d MYSQL_DATABASE]
[--mysql-host MYSQL_HOST] [-c CHUNK] [-l LOG_FILE]
optional arguments:
-h, --help show this help message and exit
-f SQLITE_FILE, --sqlite-file SQLITE_FILE
SQLite3 db file
-u MYSQL_USER, --mysql-user MYSQL_USER
MySQL user
-p MYSQL_PASSWORD, --mysql-password MYSQL_PASSWORD
MySQL password
-d MYSQL_DATABASE, --mysql-database MYSQL_DATABASE
MySQL host
--mysql-host MYSQL_HOST
MySQL host
-c CHUNK, --chunk CHUNK
Chunk reading/writing SQL records
-l LOG_FILE, --log-file LOG_FILE
Log file
Ответ 10
Самый простой способ конвертировать MySql DB в Sqlite:
1) Создать файл дампа sql для вашей базы данных MySql.
2) Загрузите файл в онлайн-конвертер RebaseData здесь
3) Кнопка загрузки появится на странице для загрузки базы данных в формате Sqlite.
Ответ 11
Нашел этот плагин для MySQL WorkBench:
http://www.henlich.de/software/sqlite-export-plugin-for-mysql-workbench/
Ответ 12
Мое решение этой проблемы с Mac состояло в
- Установите Ruby и сиквел, похожие на ответ Macario. Я выполнил эту ссылку, чтобы помочь настроить Ruby, mysql и sqlite3 Настройка разработки Ruby on Rails для Mac OSX
-
Установить сиквел
$ gem install sequel
Если все еще требуется
% gem install mysql sqlite3
затем использовал следующий из документа Sequel bin_sequel.rdoc (см. Копировать базу данных)
sequel -C mysql://myUserName:[email protected]/databaseName sqlite://myConvertedDatabaseName.sqlite
Пользователь windows может установить Ruby и Sequel для решения Windows.
Ответ 13
Я пробовал несколько методов в этой теме, но ничего не работало для меня. Итак, вот новое решение, которое также оказалось очень простым:
- Установите RazorSQL. Работает для Mac, Windows и Linux.
- В RazorSQL подключитесь к своей базе данных, например, на localhost. Конверсия не работает с файлами sql dump.
- Щелкните правой кнопкой мыши по базе данных → Преобразование базы данных → выберите SQLite.
Это сохранит txt файл со всеми запросами
sqlite
, необходимыми для создания этой базы данных. - Установите диспетчер баз данных SQLite, например Браузер DB для SQLite. Он работает на любой ОС.
- Создайте пустую базу данных, перейдите на вкладку "Выполнение SQL" и вставьте содержимое с шага 3.
Что это, теперь у вас есть база данных SQLite.
Ответ 14
Если у вас есть опыт, пишите простые скрипты с помощью Perl\Python\etc и конвертируйте MySQL в SQLite. Прочитайте данные из Mysql и напишите на SQLite.
Ответ 15
Мне нравится SQLite2009 Pro Enterprise Manager, предложенный Jfly. Однако:
-
Тип данных MySQL INT не преобразован в тип данных SQlite INTEGER (работает с DBeaver)
-
Он не импортирует внешние ключи из MySQL (я не смог найти инструмент, который поддерживает передачу ограничений внешнего ключа от MySQL до SQlite.)
Ответ 16
Из список инструментов конвертера Я нашел Kexi. Это инструмент пользовательского интерфейса для импорта с различных серверов БД (включая MySQL) в SQLite. При импорте некоторой базы данных (скажем, из MySQL) она хранит ее в формате Kexi. Формат Kexi - это "родной" формат SQLite. Так просто скопируйте файл kexi и сохраните свои данные в формате sqlite
Ответ 17
Если вы получили файл базы данных и не установили правильный сервер (SQLite или MySQL), попробуйте этот инструмент: https://dbconvert.com/sqlite/mysql/ Пробная версия позволяет конвертировать первые 50 записей каждой таблицы, остальная часть данных - с водяными знаками. Это программа для Windows и может либо сбрасываться на работающий сервер базы данных, либо выгружать вывод в файл .sql.
Ответ 18
Не программный ответ, но он сэкономил мне много времени. Конвертер SQL в SQLite
Здесь я смог преобразовать БД, которая содержит 33 таблицы. Заняло около минуты.
- Мой процесс должен был сбросить (экспортировать) мою базу данных MySQL.
- Затем импортируйте его, используя сайт, упомянутый выше.
- Он подготовил для меня sqlite db data.sqlite, а затем я просто открыл его в браузере SQLite.
Ответ 19
Вы можете конвертировать MySQL DB в SQLite3, используя следующий скрипт: -
#!/bin/sh
mysqldump --compact --compatible=ansi --default-character-set=binary mydbname |
grep -v ' KEY "' |
grep -v ' UNIQUE KEY "' |
perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' |
perl -pe '
if (/^(INSERT.+?)\(/) {
$a=$1;
s/\\'\''/'\'\''/g;
s/\\n/\n/g;
s/\),\(/\);\n$a\(/g;
}
' |
sqlite3 output.db
Другой простой способ преобразования базы данных MySQL в SQLite - использование инструмента конвертации базы данных, который может напрямую выбирать файл базы данных конкретной базы данных и обеспечивать предварительный просмотр конвертируемых таблиц, а после преобразования будет напрямую сохранять данные в указанной базе данных, установленной на ваша система. Вы можете получить бесплатную версию этого программного обеспечения, выполнив поиск Stellar Converter for Database в Google.
Ответ 20
Это простой конвертер: http://mysql2sqlite.felipemarques.com.br/ (сайт находится на бразильском португальском языке)