Mysql может работать в нескольких режимах: соединение по порту и через unix сокет. Рассмотрим преимущества и недостатки обеих методов.
1) Соединение по порту.
Этот тип соединения подходит для тех случаев, когда БД и ПО, которое использует БД, находятся на разных физических серверах или ПО не умеет работать через сокеты. Это преимущества. что же касается недостатков, то это невозможность поставить права на уровне ФС и заметное замедление в скорости работы
2) Соединение через unix сокет.
Этот тип подходит тогда, когда требуется жёстко обезопасить mysql соединение. Мало того, что соединение только через сокет, но и можно раздавать права на уровне ФС.
3) Настройка сервера mysql.
Для включения работы сервера в режиме только “unix сокеты” в конфигурационный файл my.cnf вносим такие строки:
socket= /tmp/mysql.sock
skip-networking
После этого перезапускаем демон mysql и радуемся:
# sockstat | grep mysql
www httpd 60838 15 stream -> /tmp/mysql.sock
mysql mysqld 60732 10 stream /tmp/mysql.sock
mysql mysqld 60732 28 stream /tmp/mysql.sock
mysql mysqld 60732 69 stream /tmp/mysql.sock
mysql mysqld 60732 70 stream /tmp/mysql.sock
mysql mysqld 60732 71 stream /tmp/mysql.sock
mysql mysqld 60732 72 stream /tmp/mysql.sock
mysql mysqld 60732 74 stream /tmp/mysql.sock
www httpd 43542 16 stream -> /tmp/mysql.sock
www httpd 78344 17 stream -> /tmp/mysql.sock
www httpd 74725 17 stream -> /tmp/mysql.sock
www httpd 73062 17 stream -> /tmp/mysql.sock
www httpd 92412 18 stream -> /tmp/mysql.sock
Только соединение по сокетам.
4) Типичные настройки некоторого ПО для работы через сокеты.
-phpmyadmin
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
-cacti
$database_port = "/tmp/mysql.sock";