Witam,
mam pytanko, istnieje szansa dostania się w jakikolwiek sposób do bazy danych jeżeli posiadam dane:
user
password
database_name
Baza danych znajduję się na serwerze do którego nie mam dostępu, oraz nie mam dostepu do phpmyadmina.
Z góry dziękuję za pomoc
https://www.adminer.org/pl/ ale musisz mieć do kompletu host
Ok dzięki za podpowiedź
wybaczcie moja konsternacje ale jak sam autor wspomnial nie ma dostepu do phpmyadmin ale nagle bedzie mial dostep do zupelnie nowego programu tj adminer? Cos przeoczylem?
Nie wnikaj Im mniej wiesz tym dłużej żyjesz
Witam
Nie chciałem tworzyć nowego tematu, bo moje pytanie obejmuje problemy z połączeniem z bazą danych.
Jestem "opiekunem" bardzo rozbudowanej i zagmatwanej aplikacji webowej. Aplikacja napisana głównie w PHP 5.5, ale jest tam w zasadzie wszystko.
Nagle po nie wiem jakim czasie admin sewera zgłosił się do mnie , że proces mysqld na serwerze przekracza 100% zajętości procesora
Nigdy się to nie zdarzało, zwykle szczytowo raz dziennie jest to okoł 25%
Zespół MySQL zaczął analizować ewentualne powody i wyszło między , że aplikacja nie zamyka połączeń z bazą danych, co gorsza, otwoera cały czas nowe.
Jak można by było kontrolować przed otwarciem nowego połączenia czy już takie nie jest otwarte?
Znalazłem także coś takiego
$conn = http://www.php.net/mysql_pconnect($host,$user,$password)
To tylko przykład, ponieważ przejrzałem pobieżnie dokumentację, itp., więc nie sugeruj się tym rozwiązaniem aż tak. Możliwe, że jest lepsze rozwiązanie, ale na tę chwilę jakoś nie specjalnie znalazłem.
<?php $mysqli = new mysqli('localhost', 'root', 'mystrongpass', 'forumphp'); $mysqli2 = new mysqli('localhost', 'root', 'mystrongpass', 'forumphp'); $mysqli3 = new mysqli('localhost', 'root', 'mystrongpass', 'forumphp'); $mysqli4 = new mysqli('localhost', 'root', 'mystrongpass', 'forumphp'); $connections = [$mysqli, $mysqli2, $mysqli3, $mysqli4]; $which_connect_true = 2; for($i=0;$i<sizeof($connections);$i++) { if($i != $which_connect_true && http://www.php.net/is_int($connections[$i]->thread_id)) { $connections[$i]->kill($connections[$i]->thread_id); $connections[$i]->close(); } } http://www.php.net/sleep(2); http://www.php.net/var_dump($connections[$which_connect_true]->stat()); $query = $mysqli3->query('show processlist;'); while($res = $query->fetch_assoc()) { http://www.php.net/var_dump($res); } $connections[$which_connect_true]->close(); ?>
$conn = http://www.php.net/mysql_pconnect($host,$user,$password)
Problem w tym, że ja jestem developerem, a nie MySQL specialist z firmy i wiem tyle ile mi powie. Sprawdzałem FULL PROCESS LIST i było może z 6 zapytań, które nie wyglądały groźnie.
Na razie temat zakończył się tym, że admin serwera zgodził się na zwiększenie procków z 2 do 4 i problem niby zniknął.
A ja znalazłem miejsce gdzie mogłem zrobić zakończenie połączenia mysql_close, choć nie przekonuje mnie to co mi mówił administrator mysqla.
Coś tam spiepszyli podczas ostatniego upgradu i nie chcą sie przyznać. Szkoda, że nie zaproponowałem zamknięcia apacha i sprawdzenia jak zachowuje sie proces bazy danych.
Czyli de facto nic nie zrobiono. Jedynie co to odwleczono w czasie zawał pacjenta.
Tak jak @redeemer wspomniał odpalić show full processlist i zobaczyć co i jak długo wisi.
Poza tym Adminteż dupa bo sam mógł zerknąc co tak mieli. Skoro widział że to MySQL to sam mógł zerknąć co jest przyczyną. No chyba że ma płacone za h supportu i ma wywalone na to, ale niestety bez nieho cięzko będzie debugować.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)