Mam problem z uruchomieniem określonej bazy danych. Próbuję przywrócić zrzut postgreSQL, który otrzymałem od kogoś innego. Próbowałem kilka metod bezskutecznie.Konfigurowanie ustawień regionalnych w systemie Linux dla PostgreSQL
Prosto z pg_restore
pg_restore -C -d postgres --exit-on-error maggie_prod_20111221.dump.sql
Tworzenie bazy danych i tabel pierwszy
createdb -T template0 maggieprod -E LATIN1
SQL:
CREATE TABLESPACE magdat OWNER maggie LOCATION '/somewhere/magdat';
pg_restore -v -d template1 maggie_prod_20110121.dump.sql
Stosując pierwszą metodę otrzymuję następujący:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2308; 1262 16386 DATABASE maggieprod postgres
pg_restore: [archiver (db)] could not execute query: ERROR: encoding LATIN1 does not match locale en_CA.utf8
DETAIL: The chosen LC_CTYPE setting requires encoding UTF8. Command was: CREATE DATABASE maggieprod WITH TEMPLATE = template0 ENCODING = 'LATIN1' TABLESPACE = magdat;
D Korzystanie z drugą, gdy próbuję i utworzenia bazy danych uzyskać:
createdb: database creation failed: ERROR: encoding LATIN1 does not match locale en_CA.utf8
DETAIL: The chosen LC_CTYPE setting requires encoding UTF8.
więc wydaje się, że nie można utworzyć bazę danych kodowania latin1? Dlaczego? Jestem nowy w ustawieniach lokalnych i kodowaniu i nie wiem zbyt wiele na ich temat. Wiem tylko, że zrzut został wykonany z bazy danych LATIN1.
Wyjście locale
jest:
LANG=en_CA.utf8 LC_CTYPE="en_CA.utf8" LC_NUMERIC="en_CA.utf8" LC_TIME="en_CA.utf8" LC_COLLATE="en_CA.utf8" LC_MONETARY="en_CA.utf8" LC_MESSAGES="en_CA.utf8" LC_PAPER="en_CA.utf8" LC_NAME="en_CA.utf8" LC_ADDRESS="en_CA.utf8" LC_TELEPHONE="en_CA.utf8" LC_MEASUREMENT="en_CA.utf8" LC_IDENTIFICATION="en_CA.utf8" LC_ALL=
a wyjście locale -a
jest:
C en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZW.utf8 POSIX
nie widzę latin1 w drugim poleceniu miałbym? Jeśli tak, to w jaki sposób mogę go dodać? Czy to jest właściwe dla mnie założenie, że muszę zmienić ustawienia regionalne na moim komputerze? Jeśli tak, czy istnieje sposób, aby to zrobić tylko dla PostgreSQL? Ponadto, kiedy próbuję otworzyć zrzut, widzę wiele postów śmieci, zakładam, że dzieje się tak z powodu kodowania, w jaki sposób powinienem to właściwie sprawdzić?
Dzięki za pomoc.