Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Установка MySQL на Linux

05 янв. 2014

В настоящее время MySQL — наиболее популярная база данных из всех, что используются в Linux. MySQL быстро функционирует, ее техническая поддержка не отличается сложностью, и к тому же эту базу данных легко программировать. MySQL особенно активно применяется в сочетании с РНР для создания динамических веб-страниц. Различные готовые веб-приложения (Joomla!, TYP03 и т. д.) построены на базе РНР и MySQL.

По сравнению с коммерческими базами данных, например Oracle или IBM DB/2, в MySQL предлагается меньше функций, но для решения большинства практических задач набора ее функций вполне достаточно.

Лицензия



MySQL, а также ее драйверы для работы с различными языками программирования соответствуют лицензии GPL. Использование MySQL в рамках отдельно взятой фирмы (без передачи или коммерческой реализации) является бесплатным. Но учитывайте, что для передачи коммерческих проектов с закрытым кодом, не соответствующих GPL и построенных на основе MySQL, требуется коммерческая лицензия MySQL-сервера.

В начале 2009 года компания Oracle объявила о намерении приобрести Sun — владельца MySQL. Как это отразится на будущем MySQL, пока неясно. Но уже сейчас можно с уверенностью говорить о том, что наряду с официальной MySQL появятся так называемые ветвления (forks), то есть новые проекты, полученные на базе открытого кода. Особенно активно действует основатель MySQL Monty Widenius, который создал для этих целей Open Database Alliance.

linux mysql установка и обеспечение безопасности



Во всех распространенных дистрибутивах есть пакеты с MySQL. Обратите внимание, что сам сервер базы данных, его библиотеки, инструменты администрирования и другое устанавливаются в различных пакетах. Далее указано, какие пакеты вам могут понадобиться:

О Debian, <a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-ubuntu/">Ubuntu</a> — mysql-client, mysql-common, mysql-server; О <a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>, Red Hat — <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a>, mysql-server; О SUSE — <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a>, mysql-client, libmysqlclientn.

В Fedora целесообразно устанавливать не отдельные пакеты, а заранее составленную группу пакетов MySQL:
root# yum groupinstall <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a>


Запуск/установка



MySQL — это демон, который в отдельных дистрибутивах нужно специально запускать. Команда, используемая для этого, в различных дистрибутивах называется по-разному. В зависимости от дистрибутива сценарий Init-V называется mysql или mysqld.

Файлы базы данных сервера MySQL обычно сохраняются в каталоге /var/lib/ mysql. Файлы регистрации обычно находятся в каталогах /var/log/syslog (Debian, Ubuntu), /var/lib/mysql/хосг-шя (SUSE) или /var/log/mysql*.

Конфигурация



Конфигурация сервера MySQL выполняется в файле /etc/my.cnf или /etc/mysql/ my.cnf (Debian, Ubuntu). Этот файл уже приготовлен для решения повседневных задач. Ради экономии места я не буду описывать здесь все ключевые слова этого файла, но остановлюсь на некоторых деталях, важных с точки зрения безопасности.

Как правило, конфигурация разбивается на несколько фрагментов указанием вида [имя]. Далее мы рассмотрим только раздел [mysqld], касающийся самого сервера. Требования, предъявляемые к этому разделу, вступают в силу только после перезапуска сервера MySQL. Остальные разделы относятся к конфигурации различных клиентских программ.

О old_passwords=1 — благодаря данной настройке MySQL сохраняет внутренние пароли так, как это делалось в версиях MySQL4.0 и ниже. В некоторых дистрибутивах (например, в Fedora 11) эта настройка все еще используется по умолчанию, позволяя обойти проблемы совместимости, возникающие при работе со старыми экземплярами MySQL. Однако настройка сильно снижает защищенность системы доступа к MySQL.

Опытные пользователи MySQL, которые могут работать и без оглядки на старые версии MySQL, по возможности должны использовать вариант old_passwords=0 или просто удалить эту команду из my.cnf до того, как настраивать какие-либо пароли! Чтобы измененные настройки вступили в силу, перезапустите сервер MySQL.

О bind-address=127.0.0.1 — при такой настройке сетевое соединение с сервером MySQL можно установить лишь с локального компьютера (ни с одного другого компьютера из тех, что находятся в локальной сети или Интернете). Если MySQL должна использоваться только локальными программами (например, РНР), то данная настройка помогает повысить безопасность. В Debian и Ubuntu настройка действует по умолчанию, а в остальных дистрибутивах ее нужно добавить, если это возможно. О skip-networking — закрывает любой доступ из сети к серверу MySQL, даже сетевые соединения, устанавливаемые с локального компьютера. Таким образом, это еще более ограничительная настройка, чем bind-address=127.0.0.1. В данном случае соединение с сервером могут устанавливать только локальные программы, обменивающиеся информацией с сервером MySQL через так называемый сокет-файл, например программы, написанные на РНР и на С. Программы, которые обмениваются с MySQL-сервером информацией по протоколу TCP/ IP (например, все nporpaMMbiJava), не смогут работать с MySQL-сервером! При возникновении сомнений используйте bind-address=127.0.0.1.

Пароль администратора


В Debian и Ubuntu в ходе установки сервера MySQL вам понадобится указать пароль администратора. Как и в Linux, в MySQL такой пароль имеет особое значение и предоставляет неограниченные права администрирования.

Кроме того, в Debian и Ubuntu создается учетная запись debian-sys-main, защищенная паролем, который генерируется случайным образом и сохраняется в файле /etc/mysql/debian.cnf, где в виде незашифрованного текста он доступен только администратору Linux. Сценарий /etc/mysql/debian-start, необходимый для запуска MySQL, обращается к этой учетной записи, поэтому учетную запись debiansys-main ни в коем случае нельзя отключать! При изменении пароля нужно соответствующим образом обновить и debian.cnf.

В Fedora, Red Hat и SUSE такая дополнительная защита MySQL не предусмотрена, поэтому после завершения установки любой пользователь, применив логин root, может без пароля установить соединение с MySQL. Для этого применяются следующие linux mysql команды:

<code>user$ <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a> -u root

mysql> UPDATE <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a>.user SET password=PASSWORD('xxx') WHERE user='root'; mysql> FLUSH PRIVILEGES; mysql> exit</code>

Если в дальнейшем вы планируете выполнять команды SQL с помощью mysql, войти в систему нужно так:

user$ <a class="myClass" href="http://www.modx.cc/linux/mysql/">mysql</a> -u root -p

Enter password: ******

Логины и пароли, используемые в Linux и MySQL, никак не связаны друг с другом. Из соображений безопасности ни в коем случае не применяйте для одного и того же пользователя Linux и MySQL одинаковый пароль. Часто пароли MySQL сохраняются в программном коде, поэтому защитить их гораздо сложнее, чем обычные пароли Linux.

Анонимные пользователи MySQL



Теперь пользователь MySQL root защищен паролем. Но в некоторых дистрибутивах с базой данных могут работать и анонимные пользователи. Это означает, что на сервер MySQL может войти любой пользователь с любым логином. Хотя права анонимных пользователей сильно ограничены, такой пользователь может быть опасен и лучше не допускать его в систему.

Чтобы узнать, есть ли в системе анонимные пользователи, выполните команду mysql. У анонимных пользователей в результате выполнения команды SELECT столбец user не будет содержать никакой информации. С помощью команды DELETE таких пользователей можно удалить. Команда FLUSH PRIVILEGES сразу же активизирует подобное изменение базы данных.

<code>user$ mysql -u root -p

Enter password: *******

mysql> SELECT user, host, password FROM mysql.user;

+------+----------------+-------------------------------------------+

| user
	

host
	

password |

| root
	

localhost
	

*FACF054603403E6836B8DCFCB1EAC269746E8720 |

| root
	

uranus-suselll
	

*FACF054603403E6836B8DCFCB1EAC269746E8720 |

| root
	

127.0.0.1
	

*FACF054603403E6836B8DCFCB1EAC269746E8720 |

	

localhost
	

	

uranus-suse111
	

mysql> DELETE FROM mysql.user WHERE user=''; mysql> FLUSH PRIVILEGES; mysql> exit
</code>

Первые тесты



Создание новой базы данных и новых учетных записей пользователей. Чтобы протестировать MySQL, вы должны знать язык SQL, предназначенный для работы с базами данных. В данном случае я предполагаю, что вы действительно его знаете. Цель команды, показанной ниже, — создать новую базу данных mydatabase и новую учетную запись пользователя newuser, который будет иметь право доступа к этой базе. Для решения таких задач лучше всего использовать программу mysql. Она нужна примерно для того же, что и Shell в Linux: принимает команды MySQL, переадресовывает их на MySQL-сервер и, наконец, отображает результат. При этом все команды MySQL должны заканчиваться точкой с запятой.

<code>user$ mysql -u root -p

Enter password: ******

rnysql> CREATE DATABASE mydatabase;

mysql> GRANT ALL ON mydatabase.* TO newuser@localhost

IDENTIFIED BY 'xxxxxxxxx'; mysql> exit</code>


Пользователь newuser может проводить с новоиспеченной базой данных любые другие тесты. Как и в Linux, в MySQL лучше как можно меньше работать под учетной записью root.

Создание таблиц и заполнение их данными. С помощью следующих команд newuser создает новую таблицу (CREATE TABLE), вставляет в нее определенные наборы данных (INSERT) и, наконец, просматривает все наборы данных (SELECT). Особое значение в данной таблице имеет столбец id: сервер MySQL самостоятельно вставляет туда каждый новый набор данных, присваивая ему уникальный номер, который потом используется для идентификации этого набора данных.

<code>user$ mysql -u newuser -p Enter password: ****** mysql> USE mydatabase; mysql> CREATE TABLE mytable (

id INT NOT NULL AUTO_INCREMENT, txt VARCHAR(100), n INT,

PRIMARY KEY(id)); mysql> INSERT INTO mytable (txt, mysql> INSERT INTO mytable (txt, mysql> INSERT INTO mytable (txt, mysql> SELECT * FROM mytable;

| id | txt | n |

| 1|abc | 123 | | 2 | efgsd | -4 | | 3 | NULL | 0 |

mysql> exit</code>

Администрирование MySQL


В принципе все административные операции при работе с MySQL можно выполнять с помощью текстовых команд mysql и mysqladmin, но это не очень удобно. В качестве альтернативы можно воспользоваться одним из многих интерфейсов, которые помогают создавать базы данных, вводить данные, управлять пользователями MySQL ит.д.К официальным инструментам администрирования относятся MySQL Administrator MySQL Query Browser и новая программа MySQL Workbench. В большинстве дистрибутивов эти программы предоставляются в виде отдельных пакетов.

Php My Admin



Если РНР и MySQL уже работают, то самое время установить PhpMyAdmin. Это пакет файлов, написанных на РНР, которые вместе образуют очень удобный пользовательский интерфейс для администрирования MySQL. Основное преимущество PhpMyAdmin по сравнению с другими инструментами администрирования заключается в том, что он обеспечивает удаленную поддержку MySQL. Вам даже не нужен доступ к администрируемому сайту через Интернет.

Установка



В большинстве дистрибутивов, в частности в Debian, Fedora и Ubuntu, можно установить PhpMyAdmin как обычный пакет, а затем обращаться к нему по адресу localhost/phpmyadmin или в Fedora — localhost4/phpmyadmin.

В SUSE, если вы работаете с актуальной версией, вам потребуется самостоятельно установить PhpMyAdmin. Для этого скачайте с сайта phpmyadmin.net архив TAR и распакуйте его в каталог, к которому имеет доступ Apache. Команда tar создает новый архив phpMyAdmin-n, который лучше всего сразу превратить в каталог phpmyadmin — такое название легче запоминается (следующие команды действуют только в SUSE, в других дистрибутивах вам потребуется указывать для cd соответствующий стартовый каталог DocumentRoot).

<code>root# cd /srv/www/htdocs/

root# tar xzf phpMyAdmin-3.2.0-rc1-all-languages.tar.gz root# mv phpMyAdmin-3.2.0-rc1-all-languages phpmyadmin
</code>

Убедитесь, что Apache имеет право считывать файлы! При необходимости до-полнительновыполните chmod -R или chown -R.

Применение


Конфигурация PhpMyAdmin такова, что перед началом работы вы должны представиться под логином для MySQL и соответствующим паролем. В зависимости от того, какие права доступа имеет пользователь MySQL, указанный в config.inc.php, вы, возможно, сможете в полном объеме администрировать MySQL с помощью PhpMyAdmin: программа позволяет создавать новые базы данных и таблицы, а также модифицировать и удалять имеющиеся, вводить наборы данных, модифицировать их, удалять, управлять правами доступа к MySQL, импортировать данные CSV.
Читайте так же:
ftp сервер linux

Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать