Основы программирования в Linux
Подключитесь к MySQL как пользователь root и затем выполните следующие действия.
1. Создайте регистрацию входа с локальной машины (login) для пользователя rick.
mysql> <b>GRANT ALL ON *.* TO [email protected] IDENTIFIED BY 'secretpassword';</b>Query OK, 0 rows affected (0.03 sec)2. Затем создайте регистрацию входа с любой машины из подсети класса С 192.168.0. Учтите, что следует использовать одинарные кавычки для защиты IP-диапазона и маску /255.255.255.0 для указания диапазона допустимых IP-адресов.
mysql> <b>GRANT ALL ON *.* TO [email protected]'192.168.0.0/255.255.255.0' IDENTIFIED BY 'secretpassword';</b>Query OK, 0 rows affected (0.00 sec)3. В заключение создайте такую регистрацию входа, чтобы пользователь rick мог зарегистрироваться с любой машины из домена wiley.com (и снова обратите внимание на одинарные кавычки).
mysql> <b>GRANT ALL ON *.* ТО [email protected]'%.wiley.com' IDENTIFIED BY 'secretpassword';</b>Query OK, 0 rows affected. (0.00 sec)4. Опять просмотрите таблицу пользователей, чтобы еще раз проверить все элементы!
mysql> <b>SELECT user, host, password FROM mysql.user;</b>+------+---------------------------+------------------+| user | host | password |+------+---------------------------+------------------+| root | localhost | 2dxf8e8cl7ade6ed || rick | localhost | 3742g6348q8378d9 || rick | %.wiley.com | 3742g6348q8378d9 || rick | 192.168.0.0/255.255.255.0 | 3742g6348q8378d9 |+------+---------------------------+------------------+4 rows in set (0.00 sec)mysql>Естественно, необходимо откорректировать предшествующие команды и пароли в соответствии с вашими локальными настройками. Вы должны были заметить команду
, которая, как вы наверное догадались, предоставляет пользователю rick обширные права доступа. Это хорошо для опытного пользователя, но не годится для обычных пользователей. Мы более подробно обсудим командуGRANT ALL ON *.*в разд. "Создание пользователей и наделение их правами доступа" далее в этой главе, где среди прочего покажем, как создать пользователя с ограниченными правами доступа.grantТеперь, когда вы установили и запустили СУРБД MySQL (если нет, см. следующий раздел), сделали установку более безопасной, и создали пользователя- неадминистратора, готового выполнять кое-какую работу, кратко обсудим поиск и устранение неисправностей после установки, а затем немного вернемся назад и дадим краткий обзор основ администрирования базы данных MySQL.
Устранение неисправностей после установки
Если при использовании mysql нет подключения к базе данных, проверьте с помощью системной команды ps, запущен ли серверный процесс. Если его нет в списке, попробуйте запустить
. В этом случае в регистрационный каталог MySQL должен быть записан файл с дополнительной информацией. Можно конечно попытаться явно запустить процесс mysqld; используйте командуmysql_safed -logдля получения полного списка опций командной строки.mysqld --verbose --helpВполне возможно, что сервер функционирует, но просто отвергает ваше подключение. Если так, далее следует проверить наличие базы данных, особенно базы данных стандартных прав доступа MySQL (default permissions database). В дистрибутивах Red Hat она обычно по умолчанию располагается в /var/lib/mysqlis, другие дистрибутивы используют разные каталоги. Проверьте сценарий запуска MySQL (например, в файле /etc/init.d) и конфигурационный файл /etc/my.cnf. В противном случае запустите программу явно с помощью команды
и найдите переменнуюmysqld --verbose --help. После того как вы определили каталог базы данных, проверьте, содержит ли он хотя бы базу данных стандартных прав доступа (с именем mysql) и что именно ее, заданную в файле my.cnf, использует процесс-демон сервера.datadirЕсли вы все еще не подключились, воспользуйтесь редактором сервисов (service editor) для остановки сервера, убедитесь в том, что не выполняется ни один процесс mysqld, и затем перезапустите его снова и попробуйте подключиться. Если вы все- таки никуда не попали, можно полностью деинсталлировать MySQL и установить ее с нуля еще раз. Для выяснения некоторых известных только посвященным возможностей очень полезной может оказаться документация MySQL на Web-сайте (более свежая, чем интерактивное руководство на локальной машине, кроме того, в ней есть редактируемые пользователями подсказки, и предложения, и форум).
Администрирование MySQL
Группа программ-утилит, включенных в дистрибутив MySQL, облегчает процесс администрирования базы данных. Самая популярная из них — программа mysqladmin. В следующем разделе мы опишем эту и другие утилиты.
Команды
Все команды MySQL, за исключением
, принимают как минимум три стандартных параметра, описанных в табл. 8.1.mysqlshowТаблица 8.1
Опция команды Параметр Описание -uusernameПо умолчанию утилиты mysql будут пытаться использовать то же username MySQL, что и текущее имя пользователя Linux. Применяйте параметр для задания другого имени пользователя-u-р[password]Если параметр задан, а пароль пропущен, он запрашивается. Если параметра-рнет в командной строке, команды MySQL полагают, что пароль не нужен-p-hhostПрименяется для подключения к серверу на другой машине (для локальных серверов всегда можно опускать) ПримечаниеИ снова не советуем вам помещать пароль в командную строку, поскольку его можно увидеть с помощью команды
.psmyisamchkУтилита
разработана для проверки и корректировки любых таблиц данных, применяющих стандартный табличный формат MYISAM, исходно поддерживаемый СУРБД MySQL. Обычно утилитуmyisamchkследует запускать от имени пользователя mysql, созданного во время установки, из каталога, в котором размещаются таблицы. Для проверки базы данных выполните командуmyisamchk, измените название каталога в соответствии с именем базы данных и запустите утилитуsu mysqlс одной или несколькими опциями, предложенными в табл. 8.2. Например,myisamchk