На каждом распределении, о котором я знаю, MySQL устанавливает некоторые общие библиотеки для своего клиента, названного соответственно limbysqlclient. Можно проверить на это при помощи ldconfig инструмента, который запросит, чтобы видеть, установлен ли объект:
ldconfig -p | grep mysqlclient
libmysqlclient_r.so.15 (libc6) => /usr/lib/libmysqlclient_r.so.15
libmysqlclient_r.so.14 (libc6) => /usr/lib/libmysqlclient_r.so.14
libmysqlclient_r.so.12 (libc6) => /usr/lib/libmysqlclient_r.so.12
libmysqlclient_r.so.10 (libc6) => /usr/lib/libmysqlclient_r.so.10
libmysqlclient_r.so (libc6) => /usr/lib/libmysqlclient_r.so
libmysqlclient.so.15 (libc6) => /usr/lib/libmysqlclient.so.15
libmysqlclient.so.14 (libc6) => /usr/lib/libmysqlclient.so.14
libmysqlclient.so.12 (libc6) => /usr/lib/libmysqlclient.so.12
libmysqlclient.so.10 (libc6) => /usr/lib/libmysqlclient.so.10
libmysqlclient.so (libc6) => /usr/lib/libmysqlclient.so
Это говорит Вам, что существует очень хороший шанс, что MySQL установлен. Его очень редкое, что кто-то установил бы общие объекты только, не устанавливая, по крайней мере, клиент. Теперь, проверьте на существование фактического клиента и сервера:
root@tower:~ # which mysqld_safe
/usr/bin/mysqld_safe
root@tower:~ # which mysql
/usr/bin/mysql
root@tower:~ #
'Какая' программа не может быть установлена, таким образом проверьте на нее через:
root@tower:~ # which which
/usr/bin/which
Надеюсь, это поможет. За исключением запросов диспетчера пакетов (довольно трудно, чтобы сделать в сценарии, если у Вас есть много систем, выполняющих различные дистрибутивы) это кажется очень надежным способом сказать.
Тестирование плохого элемента ViewData вызывало пятно. Все еще странный, что это решило сделать это вместо возврата сообщение об ошибке хотя...