[GIS] Importing planet files into Nominatim

centosopenstreetmappostgispostgis-2.0postgresql

After a gruesome night installing PostgreSQL 9.1, PostGIS 2 and Nominatim 2 on CentOS 6.3 using the instructions here, I am finally at the stage of importing a US planet file.

Problem: In ~/Nominatim/utils, When I attempt to run ./setup.php --osm-file us-northeast.osm.pbf --all, the output I get is:

["type"]=>
      string(2) "->"
      ["args"]=>
      array(2) {
        [0]=>
        array(9) {
          ["phptype"]=>
          string(5) "pgsql"
          ["dbsyntax"]=>
          string(5) "pgsql"
          ["username"]=>
          string(0) ""
          ["password"]=>
          bool(false)
          ["protocol"]=>
          string(3) "tcp"
          ["hostspec"]=>
          string(0) ""
          ["port"]=>
          bool(false)
          ["socket"]=>
          bool(false)
          ["database"]=>
          string(9) "nominatim"
        }
        [1]=>
        bool(false)
      }
    }
    [5]=>
    array(6) {
      ["file"]=>
      string(35) "/home/myusername/Nominatim/lib/db.php"
      ["line"]=>
      int(7)
      ["function"]=>
      string(7) "connect"
      ["class"]=>
      string(2) "DB"
      ["type"]=>
      string(2) "::"
      ["args"]=>
      array(2) {
        [0]=>
        string(19) "pgsql://@/nominatim"
        [1]=>
        bool(false)
      }
    }
    [6]=>
    array(4) {
      ["file"]=>
      string(40) "/home/myusername/Nominatim/utils/setup.php"
      ["line"]=>
      int(118)
      ["function"]=>
      string(5) "getDB"
      ["args"]=>
      array(0) {
      }
    }
  }
  ["callback"]=>
  NULL
}
DB Error: connect failed

and I am thrown back to the command line. I am logged in as a user who has a postgresql role of the same name and is a superuser. Any idea what went wrong? Do I need to create any database before doing this?

Best Answer

Per the Nominatim installation instructions, it expects the installation system user and the DB user are named the same, the DB installation user be a superuser AND the pg_hba.conf have trust set for that user.

So yes, it is expected to connect without providing a username / password.

Related Question