[Sysadmins] MySQL: установка и настройка

Шенцев Алексей Владимирович ashen на nsrz.ru
Сб Май 6 11:06:54 MSD 2006


В сообщении от 6 мая 2006 10:32 Sergey V. Minikh написал(a):
> подскажите, пожалуйста, как настроить MySQL на своей машине. 
> У меня стоит Compact 3.0 и прилагается DVD-диск. Я с dvd-диска установил
> MySQL,  а настроить, чтобы все работало правильно не получается. Что нужно
> сделать еще дополнительно?
Устанавливаем MySQL-server, MySQL-client, MySQL-doc, mysqlnavigator, 
phpMyAdmin и всё что они за собой потянут. Смотрим на каких уровнях ОС 
запскается mysql: 
$ chkconfig --list | grep mysqld
mysqld 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
Устанавливаем запуск mysqld на 3,4, и 5-ом уровнях:
$ chkconfig --level 345 mysqld on
Проверяем:
$ chkconfig --list | grep mysqld
mysqld 0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
 В конфиге mysql - /var/lib/mysql/my.cnf коментируем строку skip-networking. 
Нам это надо для того, чтобы можно было обратиться к mysql из сети, ибо мы 
хотим им управлять из любой точки нашей ЛВС по веб-интерфейсу, ну а от инета 
доступ мы закроем файерволом (как и что это уже не здесь). Итак конфиг mysql 
мы привели к виду:
$ cat /var/lib/mysql/my.cnf
[mysqld]
chroot=/var/lib/mysql
datadir=/db
bdb-logdir=/log
log=/log/queries
pid-file=/mysqld.pid
skip-locking
#skip-networking
socket=/mysql.sock
tmpdir=/tmp
user=mysql
 
Запускаем mysql:
$ service mysqld start
Adjusting environment for mysqld: [ DONE ]
Starting mysqld service: [ DONE ]
Соединяемс с mysql и меняем пароль root'а:
$ mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.24-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> UPDATE user SET Password=PASSWORD('rootpass') WHERE user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> quit
Bye
 
И перегружаем mysql:
$ service mysqld restart
Stopping mysqld service: [ DONE ]
Adjusting environment for mysqld: [ DONE ]
Starting mysqld service: [ DONE ]
 Подсоединяемся к серверу ещё раз, только теперь с новым паролем и из таблицы 
user удаляем запись пользователя '%' и '' (какая есть), т.к. эта запись 
предоставляет доступ любому пользователю.
$ mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.24-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> DELETE FROM user WHERE user='%';
Query OK, 0 rows affected (0.00 sec)
mysql> DELETE FROM user WHERE user='';
Query OK, 2 rows affected (0.00 sec)
mysql> quit
Bye
 Так как мы изменили пароль пользователя root, то теперь не сможет работать 
logrotate. Для исправления добавляем в конец файла /var/lib/mysql/my.cnf 
соответсвующие параметры:
# cat /var/lib/mysql/my.cnf
[mysqld]
chroot=/var/lib/mysql
datadir=/db
bdb-logdir=/log
log=/log/queries
pid-file=/mysqld.pid
skip-locking
#skip-networking
socket=/mysql.sock
tmpdir=/tmp
user=mysql
[mysqladmin]
password=rootpass
user=root
 И перегружаем mysql.
 Веб-интерфейс для управления MySQL. Пакет phpMyAdmin мы уже установили. 
Заходим в каталог /var/www/html/phpMyAdmin/ и в файле конфигурации 
config.inc.php в строке $cfg['Servers'][$i]['auth_type'] = 'config' 
значение 'config' заменяем на значение 'http'. Замену производим в самом 
первом вхождении данной сроки, есть ещё два вхождения, но я их трогать не 
стал, так как в php не разбираюсь, а вникать что и как в конфиге не стал, у 
меня и так всё заработало. Ну а теперь топаем на ссылку 
http://localhost/phpMyAdmin/, вводим имя пользоваиеля, у нас это root, и 
пароль, у нас это rootpass и - вуаля, мы находимся на странице веб-интерфейса 
для СУДБ MySQL. Единственное что я предложил бы, так это перенести 
каталог /var/www/html/phpMyAdmin/ в созданный каталог /var/www/html/admin/ . 
Почему так? Ну в этот же каталог мы поставим PostfixAdmin, таким образом мы 
средства администрирования нашего сервака ложим в один каталог, а не 
разбрасываем по всему сайту. Но это уже дело вкуса.
 
 Мне, например, удобней обращаться по адресу http://localhost/admin/phpMyAdmin 
или http://localhost/admin/postfixadmin , чем лазить по всему сайту, 
вспоминая хде что лежит ... ;) Тем более, что перенос каталога ничего не 
меняет, кроме размещения самого каталога. Так что далее обращаться к 
phpMyAdmin и к postfixadmin будеем через http://localhost/admin/ , тем более, 
что на данный каталог можно навесить дополнительную защиту к самой 
авторизации пользователей в используемых нами программах администрирования, 
что, по моему мнению, повышает безопастность всей системы в целом. Если я не 
прав, то пусть меня поправят, уточнят и дополнят.
-- 
С уважением Шенцев Алексей Владимирович.
E-mail: ashen на nsrz.ru
ICQ: 271053845


Подробная информация о списке рассылки Sysadmins