Извините за ответ на старый вопрос, но я приземлился здесь в поисках той же информации, и, кажется, нигде не получен четкий ответ, так что вот так.обширный (мягко говоря) и излишний для большинства приложений.«City1000» имеет гораздо больше смысла и имеет гораздо более управляемый размер.Импортировать его в MySQL довольно просто, если у вас есть SSH-доступ к серверу.
Загрузить файл wget http://download.geonames.org/export/dump/cities1000.zip
Извлечь егоunzip cities1000.zip
Выполните следующий запрос (не забудьте заменить MyDatabase именем вашей базы данных, а имя таблицы должно совпадать с именем файла)
.
CREATE TABLE IF NOT EXISTS `MyDatabase`.`cities1000` (
`geo_id` INT(11) UNSIGNED NOT NULL PRIMARY KEY,
`geo_name` VARCHAR(200) NOT NULL DEFAULT '',
`geo_ansiname` VARCHAR(200) NOT NULL DEFAULT '',
`geo_alternate_names` VARCHAR(2000) NOT NULL DEFAULT '',
`geo_latitude` DOUBLE PRECISION(11,7) NOT NULL DEFAULT '0',
`geo_longitude` DOUBLE PRECISION(11,7) NOT NULL DEFAULT '0',
`geo_feature_class` CHAR(1) ,
`geo_feature_code` VARCHAR(10) ,
`geo_country_code` CHAR(2),
`geo_country_code2` VARCHAR(60),
`geo_admin1_code` VARCHAR(20) DEFAULT '',
`geo_admin2_code` VARCHAR(80) DEFAULT '',
`geo_admin3_code` VARCHAR(20) DEFAULT '',
`geo_admin4_code` VARCHAR(20) DEFAULT '',
`geo_population` BIGINT(11) DEFAULT '0',
`geo_elevation` INT(11) DEFAULT '0',
`geo_gtopo30` INT(11) DEFAULT '0',
`geo_timezone` VARCHAR(40),
`geo_mod_date` DATE DEFAULT '0000-00-00'
) CHARACTER SET utf8 ;
Импорт загруженного файла в базу данных (вам нужно изменить команду в соответствии с конфигурацией вашего сервера)
mysqlimport -h localhost -u MySQL-USER -p --fields-terminated-by='\t' --lines-terminated-by='\n' --local MyDatabase /path-to/cities1000.txt
Очень важно: добавить индексы в соответствующие поля
Вот и все!Все еще чрезвычайно полный список городов по всему миру без всего «мусора» в файле «allCountries».
Основная проблема с данными состоит в том, что если вы хотите, чтобы страны, вам нужно было построить эту таблицусамостоятельно и добавьте внешние ключи, связывающие их с городами, но второй источник данных (доступный в XML) и несколько умных запросов помогут вам.