IP.Board na innym porcie MySQL

Patrząc na problemy z jakimi ostatnio borykają się niektórzy użytkownicy IP.Board postanowiłem napisać ten tutorialek

Mianowicie chodzi o problem z połączeniem do bazy danych na innym porcie niż standardowy. Problemy takie możemy zaobserwować np. na serwerach nazwa.pl na nowej wersji bazy MySQL 5 dostępnej na porcie 3305. Przejdźmy zatem od razu do czynów:

Otwórz plik: /conf_global.php

Znajdź:

$INFO['sql_host'] = 'serwer_bazy_danych'; 

dodaj poniżej:

$INFO['sql_port'] = 'port_na_jakim_dziala_baza';

Zapisz zmiany i wgraj plik.

Otwórz: /sources/ipsclass.php

Znajdź:

# Debug log - Don't use this on a production board!

 $this->DB->obj['debug_log'] = ROOT_PATH . 'cache/sql_debug_log_'.date('m_d_y').'.cgi';
 $this->DB->obj['use_debug_log'] = 0; 

Dodaj poniżej:

if( !empty( $this->vars['sql_port'] ) )
 {
 if ( extension_loaded('mysqli') AND ! defined( 'FORCE_MYSQL_ONLY' ) )
 {
 $this->DB->obj['sql_port'] = $this->vars['sql_port'];
 }
 else
 {
 $this->DB->obj['sql_host'] = "{$this->DB->obj['sql_host']}:{$this->vars['sql_port']}";
 }
 } 

Zapisz zmiany i wgraj plik.

Otwórz plik: /ips_kernel/class_db_mysql_client.php

Znajdź:

$this->connection_id = @mysql_pconnect( $this->obj['sql_host'] ,
 $this->obj['sql_user'] ,
 $this->obj['sql_pass'] ,
 $this->obj['force_new_connection']
 ); 

Zamień na:

if( !empty($this->obj['sql_port'] ) )
 {
 $this->connection_id = @mysql_pconnect( $this->obj['sql_host'] .':' .$this->obj['sql_port'] ,
 $this->obj['sql_user'] ,
 $this->obj['sql_pass'] ,
 $this->obj['force_new_connection']
 );
 }
 else
 {
 $this->connection_id = @mysql_pconnect( $this->obj['sql_host'] ,
 $this->obj['sql_user'] ,
 $this->obj['sql_pass'] ,
 $this->obj['force_new_connection']
 );
 } 

Zapisz zmiany i wgraj plik.

To już wszystkie zmiany. Od teraz wszystko już będzie działać tak jak należy :-)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

HTML tags are not allowed.