【问题标题】:How to create database in MySQL for import Maxmind GeoLite2 city csv如何在 MySQL 中创建数据库以导入 Maxmind GeoLite2 city csv
【发布时间】:2016-06-10 11:43:22
【问题描述】:

如何在 MySQL 中创建用于导入 Maxmind GeoLite2 城市 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;

【问题讨论】:

    标签: mysql sql maxmind geolite2 geolitecity


    【解决方案1】:

    您可以使用我的工具从 GitHub https://github.com/mbto/maxmind-geoip2-csv2sql-converter 将 MaxMind GeoLite2 国家/城市 CSV 转换为 MySQL/PostgreSQL/Microsoft SQL Server 2019

    您可以阅读examples,或按照以下步骤操作:

    1. https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/ 获取 MaxMind API 的免费许可证密钥(如果您没有)
    2. adoptopenjdk.netgithub.com/raphw/raphw.github.iooracle.com/java 安装Java 11(如果未安装)
    3. releases(.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.batbin/converted/loader.sh将可用。
    10. 对于 unix:执行 chmod +x loader.sh
    11. 执行loader.batloader.sh 以导入架构。

    完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2015-09-24
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多