> Ubuntu 10.04 server, > > Sorry, If my memory serves, Ubuntu has weired policy about socket directory as Debian:
> # Unix domain socket path for the backend. Debian package defaults to > /var/run/postgresql! > backend_socket_dir = '/tmp' Changing backend_socket_dir to /var/run/postgresql might help. -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese: http://www.sraoss.co.jp > On Wed, Feb 23, 2011 at 2:04 PM, Tatsuo Ishii <[email protected]> wrote: > >> >> What is your platform pgpool-II is running on? >> >> So what is your platform? >> -- >> Tatsuo Ishii >> SRA OSS, Inc. Japan >> English: http://www.sraoss.co.jp/index_en.php >> Japanese: http://www.sraoss.co.jp >> >> > thx : >> > >> > mickael@PTI2:~$ sudo su - postgres >> > postgres@PTI2:~$ /usr/lib/postgresql/9.0/bin/pg_ctl -D >> /usr/local/pgsql/data >> > -l logpostgres start >> > server starting >> > postgres@PTI2:~$ psql -p 5432 -l >> > List of databases >> > Name | Owner | Encoding | Collation | Ctype | Access >> > privileges >> > >> -----------+----------+----------+-------------+-------------+----------------------- >> > postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | >> > template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | >> > =c/postgres + >> > | | | >> > | | postgres=CTc/postgres >> > template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | >> > =c/postgres + >> > | | | | >> > | postgres=CTc/postgres >> > (3 rows) >> > >> > >> > postgres@PTI2:~$ exit >> > logout >> > mickael@PTI2:~$ sudo mkdir /var/run/pgpool >> > mickael@PTI2:~$ sudo chown www-data /var/run/pgpool/ >> > mickael@PTI2:~$ sudo chmod 777 -R /var/run/pgpool/ Otherwise i got >> : >> > could not open pid file as /var/run/pgpool/pgpool.pid. reason: Permission >> > denied >> > mickael@PTI2:~$ sudo su - postgres >> > postgres@PTI2:~$ pgpool -d -n > ~/pgpool.log 2>&1 & >> > >> > after a nano pgpool.log i got : >> > >> > .... >> > 2011-02-23 11:04:34 ERROR: pid 1327: pool_init_pool_passwd: couldn't open >> > /usr/local/etc/pool_passwd. reason: Permission denied >> > 2011-02-23 11:04:34 LOG: pid 1327: Backend status file >> > /var/log/pgpool/pgpool_status does not exist >> > ..... >> > 2011-02-23 11:04:34 LOG: pid 1327: pgpool-II successfully started. >> version >> > 3.1.0-alpha1 (umiyameboshi) >> > ..... >> > 2011-02-23 11:04:34 DEBUG: pid 1352: I am 1352 >> > 2011-02-23 11:04:34 DEBUG: pid 1357: I am 1357 >> > 2011-02-23 11:04:34 ERROR: pid 1327: connect_unix_domain_socket_by_port: >> > connect() failed: No such file or directory >> > 2011-02-23 11:04:34 ERROR: pid 1327: make_persistent_db_connection: >> > connection to (5432) failed >> > 2011-02-23 11:04:34 ERROR: pid 1327: find_primary_node: >> > make_persistent_connetcion failed >> > 2011-02-23 11:04:34 LOG: pid 1327: pgpool-II successfully started. >> version >> > 3.1.0-alpha1 (umiyameboshi) >> > .... >> > >> > >> > I don't understand because if trying again : >> > psql -p 5432 -l >> > >> > it works ! >> > >> > >> > And my pgpool.config : >> > >> > >> > # pgpool-II configuration file sample >> > # $Header: >> > /cvsroot/pgpool/pgpool-web/contrib_docs/simple_sr_setting/pgpool.conf,v >> 1.1 >> > 2010/11/04 04:39:57 t-ishii Exp $ >> > >> > # Host name or IP address to listen on: '*' for all, '' for no TCP/IP >> > # connections >> > listen_addresses = '*' >> > >> > # Port number for pgpool >> > port = 9999 >> > >> > # Port number for pgpool communication manager >> > pcp_port = 9898 >> > >> > # Unix domain socket path. (The Debian package defaults to >> > # /var/run/postgresql.) >> > socket_dir = '/tmp' >> > >> > # Unix domain socket path for pgpool communication manager. >> > # (Debian package defaults to /var/run/postgresql) >> > pcp_socket_dir = '/tmp' >> > >> > # Unix domain socket path for the backend. Debian package defaults to >> > /var/run/postgresql! >> > backend_socket_dir = '/tmp' >> > >> > # pgpool communication manager timeout. 0 means no timeout, but strongly >> not >> > recommended! >> > pcp_timeout = 10 >> > >> > # number of pre-forked child process >> > num_init_children = 32 >> > >> > # Number of connection pools allowed for a child process >> > max_pool = 4 >> > >> > # If idle for this many seconds, child exits. 0 means no timeout. >> > child_life_time = 0 >> > >> > # If idle for this many seconds, connection to PostgreSQL closes. >> > # 0 means no timeout. >> > connection_life_time = 0 >> > >> > # If child_max_connections connections were received, child exits. >> > # 0 means no exit. >> > child_max_connections = 0 >> > >> > # If client_idle_limit is n (n > 0), the client is forced to be >> > # disconnected whenever after n seconds idle (even inside an explicit >> > # transactions!) >> > # 0 means no disconnect. >> > client_idle_limit = 0 >> > >> > # Maximum time in seconds to complete client authentication. >> > # 0 means no timeout. >> > authentication_timeout = 60 >> > >> > # Logging directory >> > logdir = '/var/log/pgpool' >> > >> > # pid file name >> > pid_file_name = '/var/run/pgpool/pgpool.pid' >> > >> > # Replication mode >> > replication_mode = false >> > >> > # Load balancing mode, i.e., all SELECTs are load balanced. >> > # This is ignored if replication_mode is false. >> > load_balance_mode = true >> > >> > # If there's a disagreement with the packet kind sent from backend, >> > # then degenrate the node which is most likely "minority". If false, >> > # just force to exit this session. >> > replication_stop_on_mismatch = false >> > >> > # If there's a disagreement with the number of affected tuples in >> > # UPDATE/DELETE, then degenrate the node which is most likely >> > # "minority". >> > # If false, just abort the transaction to keep the consistency. >> > failover_if_affected_tuples_mismatch = true >> > >> > # If true, replicate SELECT statement when load balancing is disabled. >> > # If false, it is only sent to the master node. >> > replicate_select = false >> > >> > # Semicolon separated list of queries to be issued at the end of a >> session >> > reset_query_list = 'ABORT;DISCARD ALL' >> > >> > # white_function_list is a comma separated list of function names >> > # those do not write to database. Any functions not listed here >> > # are regarded to write to database and SELECTs including such >> > # writer-functions will be executed on master(primary) in master/slave >> > # mode, or executed on all DB nodes in replication mode. >> > # >> > # black_function_list is a comma separated list of function names >> > # those write to database. Any functions not listed here >> > # are regarded not to write to database and SELECTs including such >> > # read-only-functions will be executed on any DB nodes. >> > # >> > # You cannot make full both white_function_list and >> > # black_function_list at the same time. If you specify something in >> > # one of them, you should make empty other. >> > # >> > # Pre 3.0 pgpool-II recognizes nextval and setval in hard coded >> > # way. Following setting will do the same as the previous version. >> > # white_function_list = '' >> > # black_function_list = 'nextval,setval' >> > white_function_list = '' >> > #black_function_list = '' >> > black_function_list = 'nextval,setval,foo' >> > >> > # If true print timestamp on each log line. >> > print_timestamp = true >> > >> > # If true, operate in master/slave mode. >> > master_slave_mode = true >> > >> > # Master/slave sub mode. either 'slony' or 'stream'. Default is 'slony'. >> > # master_slave_sub_mode = 'stream' >> > master_slave_sub_mode = 'stream' >> > >> > # If the standby server delays more than delay_threshold, >> > # any query goes to the primary only. The unit is in bytes. >> > # 0 disables the check. Default is 0. >> > # Note that health_check_period required to be greater than 0 >> > # to enable the functionality. >> > delay_threshold = 100 >> > >> > # 'always' logs the standby delay whenever health check runs. >> > # 'if_over_threshold' logs only if the delay exceeds delay_threshold. >> > # 'none' disables the delay log. >> > log_standby_delay = 'if_over_threshold' >> > #log_standby_delay = 'always' >> > >> > # If true, cache connection pool. >> > connection_cache = true >> > >> > # Health check timeout. 0 means no timeout. >> > health_check_timeout = 10 >> > >> > # Health check period. 0 means no health check. >> > health_check_period = 10 >> > >> > # Health check user >> > health_check_user = 'www-data' >> > >> > # Execute command by failover. >> > # special values: %d = node id >> > # %h = host name >> > # %p = port number >> > # %D = database cluster path >> > # %m = new master node id >> > # %M = old master node id >> > # %H = new master node host name >> > # %P = old primary node id >> > # %% = '%' character >> > # >> > failover_command = '/usr/local/etc/failover.sh %d "%h" %p %D %m %M "%H" >> %P' >> > >> > # Execute command by failback. >> > # special values: %d = node id >> > >> > # %h = host name >> > # %p = port number >> > # %D = database cluster path >> > # %m = new master node id >> > # %M = old master node id >> > # %% = '%' character >> > # >> > failback_command = '/bin/rm -f /tmp/trigger_file1' >> > >> > # If true, trigger fail over when writing to the backend communication >> > # socket fails. This is the same behavior of pgpool-II 2.2.x or >> > # earlier. If set to false, pgpool will report an error and disconnect >> > # the session. >> > fail_over_on_backend_error = false >> > >> > # If true, automatically lock table with INSERT statements to keep SERIAL >> > # data consistency. An /*INSERT LOCK*/ comment has the same effect. A >> > # /NO INSERT LOCK*/ comment disables the effect. >> > insert_lock = true >> > >> > # If true, ignore leading white spaces of each query while pgpool judges >> > # whether the query is a SELECT so that it can be load balanced. This >> > # is useful for certain APIs such as DBI/DBD which is known to adding an >> > # extra leading white space. >> > ignore_leading_white_space = false >> > >> > # If true, print all statements to the log. Like the log_statement >> option >> > # to PostgreSQL, this allows for observing queries without engaging in >> full >> > # debugging. >> > log_statement = true >> > >> > # If true, print all statements to the log. Similar to log_statement >> except >> > # that prints DB node id and backend process id info. >> > log_per_node_statement = true >> > >> > # If true, incoming connections will be printed to the log. >> > log_connections = true >> > >> > # If true, hostname will be shown in ps status. Also shown in >> > # connection log if log_connections = true. >> > # Be warned that this feature will add overhead to look up hostname. >> > log_hostname = false >> > >> > # if non 0, run in parallel query mode >> > parallel_mode = false >> > >> > # if non 0, use query cache >> > enable_query_cache = false >> > >> > #set pgpool2 hostname >> > pgpool2_hostname = '' >> > >> > # system DB info >> > system_db_hostname = 'localhost' >> > system_db_port = 5432 >> > system_db_dbname = 'pgpool' >> > system_db_schema = 'pgpool_catalog' >> > system_db_user = 'pgpool' >> > system_db_password = '' >> > >> > # backend_hostname, backend_port, backend_weight >> > # here are examples >> > #backend_hostname0 = 'localhost' >> > #backend_port0 = 5432 >> > #backend_weight0 = 1 >> > #backend_data_directory0 = '/data' >> > #backend_hostname1 = 'localhost' >> > #backend_port1 = 5433 >> > #backend_weight1 = 1 >> > #backend_data_directory1 = '/data1' >> > >> > # - HBA - >> > >> > # If true, use pool_hba.conf for client authentication. In pgpool-II >> > # 1.1, the default value is false. The default value will be true in >> > # 1.2. >> > enable_pool_hba = false >> > >> > # md5 authentication file name. '' disables md5 authentication. >> > # To enable md5 auth, enable_pool_hba to true. >> > # Default is 'pool_passwd'. >> > pool_passwd = 'pool_passwd' >> > # - online recovery - >> > # online recovery user >> > recovery_user = 'postgres' >> > >> > # online recovery password >> > recovery_password = 'pgpoolAdmin' >> > >> > # execute a command in first stage. >> > recovery_1st_stage_command = 'basebackup.sh' >> > >> > # execute a command in second stage. >> > recovery_2nd_stage_command = '' >> > >> > # maximum time in seconds to wait for remote start-up. 0 means no wait >> > recovery_timeout = 60 >> > >> > # If client_idle_limit_in_recovery is n (n > 0), the client is forced >> > # to be disconnected whenever after n seconds idle (even inside an >> > # explicit transactions!) 0 means no disconnect. This parameter only >> > # takes effect in recovery 2nd stage. >> > client_idle_limit_in_recovery = 0 >> > >> > # Specify table name to lock. This is used when rewriting lo_creat >> > # command in replication mode. The table must exist and has writable >> > # permission to public. If the table name is '', no rewriting occurs. >> > lobj_lock_table = 'pgpool_lobj_lock' >> > >> > # If true, enable SSL support for both frontend and backend connections. >> > # note that you must also set ssl_key and ssl_cert for SSL to work in >> > # the frontend connections. >> > ssl = false >> > # path to the SSL private key file >> > ssl_key = '/usr/local/etc/server.key' >> > # path to the SSL public certificate file >> > ssl_cert = '/usr/local/etc/server.crt' >> > >> > # Debug message verbosity level. 0: no message, 1 <= : more verbose >> > debug_level = 0 >> > >> > replication_timeout = 5000 >> > log_statement = false >> > ssl_ca_cert = '' >> > ssl_ca_cert_dir = '' >> > backend_hostname0 = '' >> > backend_port0 = 5432 >> > backend_weight0 = 1 >> > backend_data_directory0 = '/usr/local/pgsql/data' >> > backend_hostname1 = '' >> > backend_port1 = 5433 >> > backend_weight1 = 1 >> > backend_data_directory1 = '/usr/local/pgsql/standby' >> > >> > >> > >> > thx, >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > On Wed, Feb 23, 2011 at 10:30 AM, Tatsuo Ishii <[email protected]> >> wrote: >> > >> >> The error message says pgpool-II could not find valid socket for 5432. >> >> Can you connect to PostgreSQL using psql on the host where pgpool-II >> >> is installed? >> >> >> >> psql -p 5432 -l >> >> >> >> What is your platform pgpool-II is running on? >> >> -- >> >> Tatsuo Ishii >> >> SRA OSS, Inc. Japan >> >> English: http://www.sraoss.co.jp/index_en.php >> >> Japanese: http://www.sraoss.co.jp >> >> >> >> > Hi, >> >> > >> >> > I'm trying to understand pgPool-II on my local server. >> >> > >> >> > But I encounter this bug now : >> >> > >> >> > 2011-02-23 09:52:03 LOG: pid 1101: pgpool-II successfully started. >> >> version >> >> > 3.1.0-alpha1 (umiyameboshi) >> >> > 2011-02-23 09:52:03 DEBUG: pid 1132: I am 1132 >> >> > 2011-02-23 09:52:03 ERROR: pid 1101: >> connect_unix_domain_socket_by_port: >> >> > connect() failed: No such file or directory >> >> > 2011-02-23 09:52:03 ERROR: pid 1101: make_persistent_db_connection: >> >> > connection to (5432) failed >> >> > >> >> > >> >> > I don't know what is wrong ? >> >> > Just before that, I've done : >> >> > /usr/lib/postgresql/9.0/bin/pg_ctl -D /usr/local/pgsql/data -l >> >> logpostgres >> >> > start >> >> > and on the log my database server works well. >> >> > >> >> > I didn't find anything on the database server log about a connection >> from >> >> > pgpool. >> >> > >> >> > I'm following this tutorial >> >> > >> >> >> http://pgpool.projects.postgresql.org/contrib_docs/simple_sr_setting/index.html >> >> > but I've disabled the ssl ( ssl = false ) >> >> > and I've started manually pgpool to show the log. >> >> > >> >> > Do you I've an idea of what is wrong ? >> >> > >> >> > >> >> > THx, >> >> >> > >> > >> > >> > -- >> > Michael Musset, >> > Tel: 06 26 06 29 89 >> > > > > -- > Michael Musset, > Tel: 06 26 06 29 89 _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
