Ik denk dat ondertussen je database dus helemaal leeg is? Dan zul je eerst alle databases + tables weer moeten createn. Dat kan met:
/usr/local/mysql/bin/mysql_install_db
Enne... zoals iemand al een beetje zei: als je phpmyadmin delete is je database er nog wel hoor. Die staat in /usr/local/mysql/data of in /var/mysql ofzoiets.
Pas echter op met phpmyadmin! De standaard install van veel mensen geeft root-access op je _hele_ database!

But then, de standaard install van mysql van veel mensen heeft een root password dat leeg is
Okee, allereerst maak je dus een phpmyadmin dir aan, en die dir moet je beveiligen met .htaccess zodat er altijd eerst een passwoord nodig is om binnen te komen. Hierboven stond al een aardige uitleg over hoe je dat doet. Mijn .htaccess file ziet er zo uit:
AuthType Basic
AuthName "MySQL Database Administration"
AuthUserFile /usr/local/apache/htdocs/mysql/.httpusers
require valid-user
DirectoryIndex index.php
AddType application/x-httpd-php .php .php3 .inc
Order deny,allow
Deny from all
Allow from 192.168.0.3
Allow from W.X.Y.Z
Zoals je ziet heeft men op mijn webserver dus het recht extra instellingen te doen (zoals php enablen). De Options zijn echter veilig en men kan echter geen extra Options toekennen. Misschien een suggestie voor die vriend van je voor zn webserver?
Met deze .htaccess file vind dus auth plaats op basis van de users in /usr/local/apache/htdocs/mysql/.httpusers, hoe je die file maakt staat ook in die post hierboven. Verder is dr maar 1 DirectoryIndex (startfile van een directory):
DirectoryIndex index.php
Als je de phpmyadmin hebt met .php3 file-extensies, verander dit dan in:
DirectoryIndex index.php3
Verder sta ik alleen access toe vanaf mijn eigen computer in het lokale netwerk + voor nog iemand (W.X.Y.Z):
Order deny,allow
Deny from all
Allow from 192.168.0.3
Allow from W.X.Y.Z
Superveilig! Maar nog lang niet veilig genoeg. In de config.inc.php file van phpmyadmin staan alle passwords. Misschien dat andere mensen hier gewoon het root password hebben staan? Heel dom, iedereen met anonymous ftp access kan meestal door het hele filesystem bladeren en komt dus heel makkelijk aan het root password voor MySQL. Wat hieraan te doen? Maak altijd gebruik van advanced authentication in phpmyadmin. Dit is een hele mooie oplossing voor beveiligingsproblemen. Hoe werkt dat nou weer? Nou, alle users die in de .httpusers file staan hebben dus access op de phpmyadmin dir. Zodra zij hebben ingelogd in die dir probeert phpmyadmin in te loggen op je MySQL database, met hetzelfde login/passwd. Dus: de login/passwd die je hebt toegevoegd aan je .httpusers, die moet je ook als user invoeren in je database in table mysql.
Voorbeeld mijn config.inc.php:
$cfgServers[1]['host'] = 'localhost';
$cfgServers[1]['port'] = '';
$cfgServers[1]['adv_auth'] = true;
$cfgServers[1]['stduser'] = 'stduser';
$cfgServers[1]['stdpass'] = 'stdpasswd';
$cfgServers[1]['user'] = '';
$cfgServers[1]['password'] = '';
$cfgServers[1]['only_db'] = '';
$cfgServers[1]['verbose'] = '';
phpmyadmin logt hiermee in op mysql als user stduser met passwd stdpasswd. De hele wereld mag dit weten, je kunt hiermee toch niks, behalve de mysql table ZIEN. Dus: ook de stduser/stdpasswd moet je toevoegen aan je mysql database. Hier zijn de queries:
INSERT INTO user VALUES ( 'localhost', 'stduser', '59d00c7309826356', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N');
INSERT INTO db VALUES ( 'localhost', 'mysql', 'stduser', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N');
Hiermee maak je een stduser aan ZONDER globale rechten. Het passwoord van de stduser is dus 'stdpasswd'. Dat de hele wereld het wete. Bij de 2de query krijgt de stduser SELECT recht op table 'mysql'. Hiermee maak je de adv. auth. van phpmyadmin mogelijk.
Hierna is het een kwestie van users aanmaken ZONDER globale rechten, en die users steeds een paar rechten te geven op alleen de nodige databases. Deze passwords kun je dan opnemen in .httpusers en/of .php files. Maar _als_ je dus passwords in unencrypted vorm opneemt in tekstfiles en .php files: dan alleen SELECT rechten geven! Anders kan de anonymous ftp-er misschien je passwords weer lezen. Normale users ook nooit reload/grant e.d. rechten geven!
Andere punt: Bij de standaard install van MySQL is het root account actief en staat het password op leeg.
Verander dus ALTIJD je password, jij nu helemaal DaCrEaTiV! Anders kan iedereen altijd bij alle databases!
Zwak punt blijft dat de .httpusers file niet is beveiligd, maar gewoon leesbaar. Zorg daarom dat alle password moeilijk (onmogelijk) te raden zijn voor een crackprog.
Misschien nog wat andere suggesties voor je vriend:
Beveilig Apache beter met o.a. dit in httpd.conf:
<Directory />
Options None
AllowOverride None
Order Allow,Deny
Deny from all
</Directory>
Niemand mag dan in / van het filesysteem lezen. Dr is nog een achterdeurtje wat ook dicht moet, de symlinks die men naar / kan aanmaken:
Deze regel staat ergens in httpd.conf:
Options FollowSymLinks MultiViews
vervangen door deze:
Options MultiViews
En als de user dirs aanstaan (public_html), zou dr zoiets moeten staan:
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Het gaat om de laatste twee opties. Dat mogen geen 'SymLinks' of 'Includes' zijn, anders maken de stoute usertje met gemak symlinks naar de / van je filesystem en kan men dus weer lekker alles in het gehele filesystem lezen.
Dusse:
1. mysql databases weer aanmaken.
2. root password mysql veranderen, en niet in passwoord 'joop' ajb!!!
3. dir aanmaken voor phpmyadmin
4. dir beveiligen (.htaccess .httpusers)
5. phpmyadmin installen
6. phpmyadmin configgen (adv. auth.)
7. de juiste users toevoegen aan .httpusers
8. dezelfde users toevoegen aan de table User in database mysql ZONDER rechten
9. enkele rechten toekennen aan die users in table Db in database mysql
CMIIW
Voor meer hulp ben ik altijd bereikbaar.
TTFN