Как создать базу данных в MySQL для импорта Maxmind GeoLite2 city csv

Как создать базу данных в MySQL для импорта Maxmind GeoLite2 city csv?

Мне нужно знать, какие типы полей мне нужно использовать и как правильно подключать таблицы в базе данных для импорта из csv-файла.

Это мой пример SQL-кода:

DROP TABLE IF EXISTS location;

CREATE TABLE IF NOT EXISTS `location` (
`geoname_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`locale_code` varchar(2) DEFAULT NULL, 
`continent_code` varchar(2) DEFAULT NULL,
`continent_name` varchar(20) DEFAULT NULL,
`country_iso_code` varchar(2) DEFAULT NULL,
`country_name` varchar(50) DEFAULT NULL,
`subdivision_1_iso_code` varchar(20) DEFAULT NULL, 
`subdivision_1_name` varchar(70) DEFAULT NULL,
`subdivision_2_iso_code` varchar(20) DEFAULT NULL, 
`subdivision_2_name` varchar(70) DEFAULT NULL,
`city_name` varchar(100) DEFAULT NULL,
`metro_code` int(11) DEFAULT NULL,
`time_zone` varchar(100) DEFAULT NULL,
PRIMARY KEY (`geoname_id`)
)   ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS blocks_IPv4;

CREATE TABLE `blocks_IPv4` (
`network` varchar(30) DEFAULT NULL,
`geoname_id` int(11) DEFAULT NULL,
`registered_country_geoname_id` int(11) DEFAULT NULL,
`represented_country_geoname_id` int(11) DEFAULT NULL,
`is_anonymous_proxy` tinyint(1) DEFAULT '0',
`is_satellite_provider` tinyint(1) DEFAULT '0',
`postal_code` varchar(45) DEFAULT NULL,
`latitude` float DEFAULT NULL,
`longitude` float DEFAULT NULL,
`accuracy_radius` INT(5)
)   ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS blocks_IPv6;

CREATE TABLE `blocks_IPv6` (
`network` varchar(255) DEFAULT NULL, 
`geoname_id` int(11) DEFAULT NULL,
`registered_country_geoname_id` int(11) DEFAULT NULL,
`represented_country_geoname_id` int(11) DEFAULT NULL,
`is_anonymous_proxy` tinyint(1) DEFAULT '0',
`is_satellite_provider` tinyint(1) DEFAULT '0',
`postal_code` varchar(45) DEFAULT NULL,
`latitude` float DEFAULT NULL,
`longitude` float DEFAULT NULL,
`accuracy_radius` INT(5)
)    ENGINE=InnoDB DEFAULT CHARSET=utf8;

1 ответ

Вы можете использовать мой инструмент для преобразования CSV страны / города MaxMind GeoLite2 в MySQL / PostgreSQL / Microsoft SQL Server 2019 из GitHub https://github.com/mbto/maxmind-geoip2-csv2sql-converter

Вы можете прочитать примеры или выполнить следующие действия:

  1. Возьмите бесплатный лицензионный ключ для MaxMind API (если у вас его нет) по адресу https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/
  2. Установите Java 11 (если не установлен) на сайте accepttopenjdk.net или github.com/raphw/raphw.github.io или oracle.com/java.
  3. Загрузите инструмент из выпусков (.zip или .tar)
  4. Распаковать в свой каталог
  5. Копировать / вставить шаблон .ini bin/GeoLite2-City-CSV.mysql.default.ini с именем вашего профиля, пример bin/GeoLite2-City-CSV.mysql.Your Project Name.ini или используйте по умолчанию.
  6. Откройте шаблон .ini с помощью Блокнота и измените [windows_loader] или [unix_loader] раздел (задайте хост MySQL: порт, пользователя и пароль).
  7. Для unix: Выполнить chmod +x maxmind-geoip2-csv2sql-converter
  8. Запускаем преобразование: maxmind-geoip2-csv2sql-converter.bat -c "GeoLite2-City-CSV.mysql.Your Project Name.ini" -k Your_License_Key -i 4,6
  9. После конвертации скрипты bin/converted/loader.bat а также bin/converted/loader.sh будет доступно.
  10. Для unix: Выполнить chmod +x loader.sh
  11. Выполнять loader.bat или loader.sh для импорта схем.

Выполнено

Другие вопросы по тегам