Shorty said:
@Netrino_2003
Was genau muss in der config.inc.php noch gemacht werden?
Da muss eigentlich nicht sehr viel gemacht werden. Ich beschreibe Dir mal die eigentlich (meiner Meinung nach richtige) Vorgehensweise
von MySQL bis hin
zu phpmyadmin:
Bei Debian und seinen Derivaten
(wenn ich es richtig in Erinnerung habe, da ich kein Debian nutze):
Nach:
Code:
apt-get install mysql ... ...
...wird man im Laufe der installation mit apt nach dem zu setzenden "root"-PW gefragt. Dies wird festgelegt und danach ist MySQL auch schon einsatzbereit...
Hiernach würde sich dann phpmyadmin anschliessen,
welches bei Installation:
Code:
apt-get install phpmyadmin...
...nach einem sogenannten "Controlluser" fragt. Hierfür wird dann als username meist 'pma' angegeben und auch für diesen user ein Passwort vergeben. Dieser Controlluser ist eigentlich, wie der Name schon sagt, ein Benutzer für den täglichen Gebrauch. Er hat keine besonderen Rechte in MySQL.
Bei Distributionen wie beispielsweise "arch"; "gentoo"; usw. ist das Ganze etwas "umfangreicher" (aber wie ich finde, auch besser).
Hier läuft nach MySQL-Installation erstmal - garnichts.
Man geht hin und installiert mit:
Code:
/usr/bin/mysql_install_db
...die Datenbanken.
Danach startet man MySQL mit:
Danach führt man:
Code:
/usr/bin/mysql_secure_installation
aus. Erst hierbei wird das MySQL-"root"-PW festgelegt (was zum Anfang leer(!) ist) und eine Reihe anderer wichtiger Merkmale. Eines davon ist beispielsweise der Zugriff auf MySQL durch das Internet. Das sollte (bis auf sehr wenige Ausnahmen) -aus- sein. Somit kann man schonmal durch direkten Zugriff über die IP-Adresse aus dem Inet nicht per root auf dem MySQL-Server gelangen. Ebenfalls sollten die sog. testuser (die ohne Passwort DB-Zugang haben) entfernt werden. Auch die dazugehörigen "Testdatenbanken". Das wird aber hierbei alles über die secure-Installation erledigt...
Bei Debian läuft das anders. Hier bei wird das wahrscheinlich über die mysql.cnf gemacht. Aber da will ich nichts falsches sagen, da ich Debian ewige Zeiten schon nicht mehr im täglichen Gebrauch habe.
So... Kommen wir zu phpmyadmin:
Da wie virtual2 es schon angedeutet hat eine Webanwendung nicht über root in die Datenbank connecten sollte, wird später jede Anwendung ihren User und ihre Datenbank haben und nur für diesen user gültiges Pass haben (nie root!) Wenn eine Anwendung das MySQL root-Passwort nutzt und es gibt einen Einbruch in diese Webanwendung kann man Dir das gesamte SQL - und damit alle anderen Datenbanken mitzerfleischen!)
In der phpmyadmin ist eigentlich nur folgendes zutun:
Code:
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysql if your server does not have mysqli */
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
Hier könnte man das bei der Installation von phpmyadmin gewählte "pma" als username (wie schon da steht) und das Pass eintragen. Das habe ich nicht gemacht bei mir. Ich gebe es lieber selbst ein. In dem Fall, wenns eingegeben und die Zeilen auskommentiert wurden kann man dann ohne jedesmal das Pass eingeben zu müssen direkt mit dem pma und seinem pass sofort in MySQL "rein". Daher hab ich es bei mir nicht drin. Einmal vergessen über ssl zu connecten, und das pma-pass geht unverschlüsselt übers Inet raus
Muss nicht sein, auch wenns nur das pma-pass ist, denn wird auf jeden Fall "sehen" können, was Du so betreibst, andere Passwörter auslesen können (sofern nicht verschlüsselt abgelegt).
**Dies hier:
Code:
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
ist dafür da, die Datenbank phpmyadmin zu verwalten.
**Kleine Anmerkung:
Ich weiss nicht mehr wie das in Debian und Konsorte ist: Man muss wenn man mit root ins phpmyadmin (über ssl-Browserverbindung!) connected hat, oben auf den Reiter Importieren gehen und eine Datei namens "create_tables.sql" aus dem ordner Scripts (phpmyadmin/scripts) Ordner importieren, womit die Tabellen für die Datenbank phpmyadmin angelegt werden...
Aber wie schon erwähnt, ich erinnere mich zuwenig an die phpmyadmin-Installation unter Debian/Derivate)
Code:
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
...so lassen, wie es ist. Ich würde nicht empfehlen swekey zu nutzen. Es ist unsicher. Ebenso wie cookie-Auth. Die sicherste Variante ist "http" (o.g. $cfg['Servers'][$i]['auth_type'] = 'http'
Code:
$cfg['Servers'][$i]['host'] = 'localhost';
Dies muss nur geändert werden, wenn sich MySQL und phpmyadmin auf 2 unterschiedlichen physischen Maschinen befinden: Angenommen Dein Datenbankserver ist ein anderer, als der auf dem Du phpmyadmin laufen hast.
Du solltest mit diesen Einstellungen eigentlich connecten können, wenn MySQL läuft (gestartet ist) wie Du sagst, Datenbanken enthält...
Hoffe, der Text hat Dich nicht erschlagen jetzt