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