Только что настраивал Mysqld, делал стандартную процедуру чистки левых рутов, и подумал написать.

Дефолтная инсталляция mysql создает следующих юзеров:

root@localhost, no password
root@127.0.0.1, no password
root@HOSTNAME, no password

После того, как мы делаем

mysqladmin password NEWPASS

Пароль устанавливается на одного из вышеперечисленных юзеров (обычно на root@localhost если на клиенте и сервере правильно указаны UNIX-сокеты). Остальные руты остаются без пароля. Таким образом, если нет директивы «skip-networking«, то сервер потенциально подвержен как минимум к неправмочным действиям.

Может быть, возможно каким то боком из пхп скрипта подсоединиться к 127.0.0.1 как root@127.0.0.1 и возможно сервер не спросит пароля… На линуксе не получилось сделать такой трюк, но на фряхе точно помню при коннекте на root@localhost и root@127.0.0.1 требует разные пароли.

Вообще конечно этих юзеров лучше поубивать ) Типа вот так:

DELETE FROM mysql.user where Password=»

Примечание: это убъет вообще всех юзеров без пароля. Лучше подумать, прежде чем делать.

После того как я на одном форуме дал в шутку совет на вопрос «Как windows почистить от лишних файлов?»:

del /F /S /Q C:\WINDOWS\*.*

… и несколько человек умудрились это запустить… В общем теперь я предупреждаю даже об очевидных вещах :)