Содержание
Установка MySQL на Zyxel Keenetic
Установка пакетов
Поставим пакет вот этой командой
opkg install mysql-server
Настройка MySQL
Создаем базу данных с именем «mysql» (для пользователя с именем «root»)
mysql_install_db --datadir=/media/DISK_A1/system/var/mysql --basedir=/media/DISK_A1/system/usr --force
Лог с информацей создания базы
Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /media/DISK_A1/system/usr/bin/mysqladmin -u root password 'new-password' /media/DISK_A1/system/usr/bin/mysqladmin -u root -h KEENETIC password 'new-password' Alternatively you can run: /media/DISK_A1/system/usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /media/DISK_A1/system/usr ; /media/DISK_A1/system/usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /media/DISK_A1/system/usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /media/DISK_A1/system/usr/scripts/mysqlbug script!
Добавляем в скрипт запуска, а лучше в папку firewall.d
правило для локальной работы с MySQL. Это нам понадобится для работы со связкой PHP+MySQL. Вот правило которое можно добавить в скрипт запуска
iptables -I INPUT -i lo -j ACCEPT
А вот скрипт для firewall.d
#!/bin/sh iptables -I INPUT -i lo -j ACCEPT
Если вам нужен автостарт MySQL сервера, то можно сделать так
mv /media/DISK_A1/system/etc/init.d/K27mysqld /media/DISK_A1/system/etc/init.d/S27mysqld
Если вам будет нужно проверить работу БД MySQL, например, из HeidiSQL (см. ниже), то отключите временно «безопасность». Для этого закоментируйте в /media/DISK_A1/system/etc/my.cnf строку. Закомментирование позволяет подключиться к БД с любого IP!
#bind-address = 127.0.0.1
Запускаем сервер командой
/media/DISK_A1/system/etc/init.d/K27mysqld start
Подключаемся к базе
mysql --defaults-file=/media/DISK_A1/system/etc/my.cnf mysql
Создаем новую базу
mysql> CREATE DATABASE test;
Создаем пользователя test с паролем testtest и с полными правами.
mysql> CREATE USER 'test'@'%' IDENTIFIED BY 'testtest'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' -> WITH GRANT OPTION;
Устанавливаем программу для работы с MySQL. Я использую бесплатную программу HeidiSQL. Взять можно здесь http://www.heidisql.com/download.php В этой программе можно редактировать базы данных, изменять права пользователей и прочие штучки-дрючки.
Если доступ к базе данных будет только локальный (порой это более предпочтительно, в том числе из соображений безопасности), а в качестве программы управления будет использоваться, например, phpMyAdmin, то приведенный выше пример изменится. Например, для phpBB, Mantis и т.п. более предпочтительно (на примере базы данных phpbb):
mysql> GRANT ALL ON phpbb.* TO 'phpbb'@'localhost' IDENTIFIED BY 'phpbb';
Установка библиотек поддержки MySQL для PHP
В нашем распоряжении есть три модуля
php5-mod-mysql - 5.4.11-2 - MySQL shared module php5-mod-mysqli - 5.4.11-2 - MySQL Improved Extension shared module php5-mod-pdo-mysql - 5.4.11-2 - PDO driver for MySQL shared module
Выбираете какой из них вам нужен и ставите. Можно поставить сразу три, если вы экспериментатор.
Ставим их при помощи команд (перед установкой php лучше выгрузить)
opkg install php5-mod-mysql opkg install php5-mod-mysqli opkg install php5-mod-pdo-mysql
Запускаем php и радуемся! MySQL работает весьма шустро и без проблем.
Установка MySQL на диск с файловой системой NTFS
Из соображений безопасности владельцем конфигурационного файла my.cnf должен быть root и права доступа 600. Для NTFS права установить нельзя, поэтому применяем трюк с созданием символической ссылки.
Сначала my.cnf переименовываем в mysql.cnf.
Затем в S27mysqld ищем строку
CONFIG="--defaults-file=$MOUNT/etc/my.cnf"
и заменяем на
CONFIGINITFILE="$MOUNT/etc/mysql.cnf" CONFIGWORKFILE="/tmp/my.cnf" CONFIGLINKFILE="$MOUNT/etc/my.cnf" CONFIG="--defaults-file=$CONFIGWORKFILE"
и после строки
start() {
добавляем
cp -f $CONFIGINITFILE $CONFIGWORKFILE chmod 600 $CONFIGWORKFILE ln -s $CONFIGWORKFILE $CONFIGLINKFILE
Теперь используется базовый конфигурационный файл mysql.cnf, а my.cnf - его копия - становится символической ссылкой на /tmp/my.cnf, и остается только перезапустить MySQL сервер.