Skocz do zawartości
Zaloguj się, aby obserwować  
Mondo90

Problem "No database selected" (VPS)

Polecane posty

Witam, mam problem z zainstalowaniem pewnego skryptu na moim serwerze VPS, cokolwiek zrobię / wpiszę podczas instalacji za kazdym razem otrzymuje komunikat "No database selected" nawet jesli zostawię wszystki pola takie jak "Database Name" czy "Database User" puste.

 

Sądzę, że mam coś źle ustawione w konfiguracji servera tylko co ?

 

Operating System: CentOS , Kloxo

 

Proszę o pomoc =(

Edytowano przez Mondo90 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kod pliku install-db.php

<?php

// define valid
define('_VALID_', '1');

if(isset($db_host))
{
   $link = mysql_connect($db_host, $db_user, $db_pass);
   mysql_select_db($db_name) or die(mysql_error());
}else{
   $link = mysql_connect(host, user, pass);
   mysql_select_db(database) or die(mysql_error());
}

if(!$link){ print "ERROR: " . mysql_error() . "\n "; }

?>

 

Sądzę, że to nie wina skryptu a własnie mojej konfiguracji servera ;/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest to autorski mały skrypcik szerzej nie znany, i nie żaden cms. Skrypt na wzór sklepu internetowego...

 

Martwi mnie to że coklwiek bym nie wpisał czy nawet nic nie wpisał to i tak otrzymam ten sam błąd "No database selected"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@up

Przecież używa w swoim skrypcie tej funkcji.

 

Po mysql_conncet zapodaj

if (!$link) {
die('Could not connect: ' . mysql_error());
}

i zobacz jaki jest efekt, tj. czy łączy się z bazą.

 

Sprawdź czy z poziomu bash-a i komendy "mysql" łączy się z serwerem bo może tutaj jest problem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sprawdź czy z poziomu bash-a i komendy "mysql" łączy się z serwerem bo może tutaj jest problem.

 

Po wpisaniu "mysql" otrzymuje komunikat "acces denied for user "root" @ "localhost" (using password:NO)

 

dodam, że na tym VPS stoi juz jedna strona na niej połaczenie z Mysql przebiega bez problemów.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

poczytaj o składni polecenia mysql (przełącznik -u i -p)

Jeżeli inna strona działa to są 2 możliwości:

- łączysz się złymi danymi z bazą (nie sprawdzasz tego to nie wiadomo)

- próbujesz wybrać bazę danych, która nie istnieje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Inna strona dziala ale na innej bazie, @regdos z 2 możliwości o których piszesz żadna jest nie mozliwa bo na 100 % podaje dobre dane no i baza też istnieje własnie sprawdzam to w panelu koxo.

 

Ma ktoś jeszcze jakieś pomysły ;/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

A dałeś uprawnienia userowi do bazy danych?

 

Może zrób nowego usera + nową baze danych i spróbuj.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A wykonałeś cokolwiek z tego co pisałem czy tylko sprawdziłeś w panelu Kloxo ?

Jak coś nie działa to sprawdza się każdą możliwość zaczynając najbardziej od źródła czyli za pomocą polecnia mysql logując się danymi, którymi próbujesz się logować w skrypcie następnie wybierasz bazę i próbujesz np. wyświetlić listę table.

Takie działanie odpowie Ci czy masz poprawne dane do logowania, poprawną bazę danych i uprawnienia użytkownika do bazy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

regdos przez ssh wpisuje

 mysql -u moja_baza -p 

i bez problemu po wpisaniu hasła łącze się z bazą czyli dane do logowania mam dobre i co wazniejsze baza istnieje

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A jak zrobisz

use nazwa_bazy;

a potem np.

show tables;

to też zadziała?

 

Jak tak to wybitnie problem jest skrypt i jego konfiguracja (jesteś pewny, że dobre dane do bazy i samą bazę masz wpisana w konfiguracji?).

 

 

PS. opcja -u odnosi się do nazwy użytkownika a nie nazwy bazy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm;

po wpisaniu

use nazwa_bazy;

otrzymuje:

database chenged

(wiec chyba jest ok ?)

po wpisaniu

show tables;

otrzymuje odp. -> (również wyglada ok, jako ze baza jest pusta)

 

Dodam jeszcze, że w skrypcie instalacyjnym na 100 % sa bledy bo obok okienek do wpisania tresci pojawiają się fragmenty kodu np: Site URL " ?>" ?>" ?>"/> NO TRAILING SLASH Server Path " ?>" ?>" ?>"/>

 

 

(jesteś pewny, że dobre dane do bazy i samą bazę masz wpisana w konfiguracji?).

Podczas instalacji na 99,9% podaje dobre dane ale jak już pisałem CZEGOKOLWIEK bym nie wpisał lub nawet zostawił wszystki pola PUSTE to i tak dostaje error "NO DATABASE SELECTED" ;/

 

PS: spróbowałem wrzucic skrypt na yoyo i tam nie pojawia się juz problem no database selected ale za to

 

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/sites/yoyo.pl/d/o/strona/install/install-db.php on line 8

oraz

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /var/www/sites/yoyo.pl/d/o/strona/install/install-db.php on line 9

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Edytowano przez Mondo90 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@up

Przecież używa w swoim skrypcie tej funkcji.

 

Po mysql_conncet zapodaj

if (!$link) {
die('Could not connect: ' . mysql_error());
}

i zobacz jaki jest efekt, tj. czy łączy się z bazą.

 

Sprawdź czy z poziomu bash-a i komendy "mysql" łączy się z serwerem bo może tutaj jest problem.

Z manuala PHP wynika że

mysql_select_db

 

i

mysql_selectdb()

to nie to samo, bez _ jest dla starszych wersji PHP dlatego się go o to pytałem,

 

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/sites/yoyo.pl/d/o/strona/install/install-db.php on line 8
oraz

Nie może się połączyć...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z manuala PHP wynika że

mysql_select_db

i

mysql_selectdb()

to nie to samo, bez _ jest dla starszych wersji PHP dlatego się go o to pytałem,

Z manuala wynika, że aktualnie mysql_selectdb jest aliasem do mysql_select_db więc teraz działa tak samo. mysql_selectdb było już depraced w PHP3.

 

Co do meritum dałeś nam kawałeczek skryptu wiec ciężko wywróżyć w czym jest dokładnie problem, z tego co wrzuciłeś na yoyo wywala, że z linii 8 nie może się połączyć z bazą danych czyli w linii

$link = mysql_connect($db_host, $db_user, $db_pass);

Zrób sobie przed tą linią echo poszczególnych zmiennych to zobaczysz czy to się zgadza z tym co wpisujesz w konsoli.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@regdos dobry pomysł zrobiłem coś takiego w pliku install-db.php

 

$dbname= $_POST['baza_2']; //poprawna nazwa bazy
$haslo = $_POST['qwerty']; //poprawne haslo

if($db_name = $dbname)
{
echo "nazwa bazy danych poprawna <br />";
}
else {
echo "nazwa bazy danych niepoprawna <br />";
.
.
. // to samo z hasłem i uzytkowniem bazy

 

Wyniki:

nazwa bazy danych niepoprawna

nazwa uzytkownika bazy niepoprawna

haslo niepoprawne

No database selected

 

a wiec wyglada na to że skrypt łączy się z innymi danymi niż te ktore wprowadzam ;/

 

Oto frgament głównego kodu installacji :

 

<table style="width: 100%;">
	  <tr>
		<th class="col1">Database Name</th>
		<td class="col2"><input name="db_name" type="text" size="20"/></td>
		<td class="col3">The name of the database to use.</td>
	  </tr>
	  <tr>
		<th class="col1">Username</th>
		<td class="col2"><input name="db_user" type="text" size="20"/></td>
		<td class="col3">Your MySQL username.</td>
	  </tr>
	  <tr>
		<th class="col1">Password</th>
		<td class="col2"><input name="db_pass" type="password" size="20"/></td>
		<td class="col3">Your MySQL password. </td>
	  </tr>
	  <tr>
		<th class="col1">Database Host</th>
		<td class="col2"><input name="db_host" type="text" size="20" value="localhost" /></td>
		<td class="col3">Most likely won't need to change this value.</td>
	  </tr>
	</table>
	<p>Please enter your paths information</p>
	<table style="width: 100%;">
	  <tr>
		<th class="col1">Site URL</th>
		<td class="col2">
  <input name="site_url" type="text" size="20" value="http://<?= $_SERVER["HTTP_HOST"]; ?>"</td>
		<td class="col3">NO TRAILING SLASH</td>
	  </tr>
	  <tr>
		<th class="col1">Server Path</th>
		<td class="col2">
  <input name="server_path" type="text" size="20" value="<?= $_SERVER["DOCUMENT_ROOT"]; ?>"</td>
		<td class="col3">eg. /home/mysite/public_html ** NO TRAILING SLASH **</td>
	  </tr>
	</table>
	<br />
	<input type="button" onclick="document['form'].submit()" class="upload" style="float:right;" value="Next Step" />
  </form>
  <?php

  break;

  case 2:

   // get values
   $db_name  = trim($_POST['db_name']);
	  $db_user   = trim($_POST['db_user']);
	  $db_pass = trim($_POST['db_pass']);
$db_host  = trim($_POST['db_host']);
$_SESSION['site_url'] = trim($_POST['site_url']);
$_SESSION['server_path'] = trim($_POST['server_path']);

// We'll fail here if the values are no good.
require_once 'install-db.php';
$handle = fopen('../include/configs/config_mysql.php', 'w');

 

Co jest nie tak ? ;[

Edytowano przez Mondo90 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok na YOYO skrypt "działa" a raczej zainstalował się. Tam faktycznie miałem źle wpisany "Host". Teraz wiem, że z skryptem wszystko jest ok tylko dlaczego nie chce się zainstalować na moim serwerze ? Może dlatego, że instaluje skrypt na subdomenia a podaje localhost ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Ok na YOYO skrypt "działa" a raczej zainstalował się. Tam faktycznie miałem źle wpisany "Host". Teraz wiem, że z skryptem wszystko jest ok tylko dlaczego nie chce się zainstalować na moim serwerze ? Może dlatego, że instaluje skrypt na subdomenia a podaje localhost ?

 

 

localhost - odnosi się do serwera localnego gdzie jest MySQL zainstalowany aby połączyć się z bazą MySQL. Jeżeli masz baze danych na innym serwerze to w tedy podajesz host tego serwera zamiast localhost...

 

 

 

co ?

 

Wpisz to w konsoli

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×