synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › DS414 в качестве сервера для базы НД "Ешкин Кот"

DS414 в качестве сервера для базы НД "Ешкин Кот"

kelevara · 30.09.2015

Добрый день!

Есть DS414. Хотелось бы использовать его в качестве локального сервера для базы нормативной документации Ёшкин кот. Собственно вопрос 1: возможно ли это? И если да, то вопрос 2 (первая сложность, с которой я столкнулся): куда именно заливать базу MySQL? В какую именно папку?

 

 

SergeS · 30.09.2015
Добрый день!

Есть DS414. Хотелось бы использовать его в качестве локального сервера для базы нормативной документации Ёшкин кот. Собственно вопрос 1: возможно ли это? И если да, то вопрос 2 (первая сложность, с которой я столкнулся): куда именно заливать базу MySQL? В какую именно папку?

 

Базу MySQL нельзя залить в какую-то папку, эти базы представлены в MySQL (ну или MariaDB, которая в Synology и которая клон MySQL) вне файловой системы. Когда ты устанавливаешь MySQL - он сам создает нужные ему папки и файлы, а ты, в свою очередь, работая с ним, не оперируещь понятиями "папка" и "файл", но оперируешь понятиями "база данных", "таблица", и т.д. И тебе понадобится пакет phpMyAdmin, если ты уж решил ковырятся в базах данных.

kelevara · 30.09.2015
Базу MySQL нельзя залить в какую-то папку, эти базы представлены в MySQL (ну или MariaDB, которая в Synology и которая клон MySQL) вне файловой системы. Когда ты устанавливаешь MySQL - он сам создает нужные ему папки и файлы, а ты, в свою очередь, работая с ним, не оперируещь понятиями "папка" и "файл", но оперируешь понятиями "база данных", "таблица", и т.д. И тебе понадобится пакет phpMyAdmin, если ты уж решил ковырятся в базах данных.

 

Правильно ли я понимаю: если у меня имеются файлы с расширениями frm, myd и myi, то их можно перевести в базу данных через phpMA с помощью команды RESTORE TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory'; ?

SergeS · 01.10.2015
Правильно ли я понимаю: если у меня имеются файлы с расширениями frm, myd и myi, то их можно перевести в базу данных через phpMA с помощью команды RESTORE TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory'; ?

 

Сложно наверняка сказать, что там у тебя в этих файлах, само по себе разрешение файла еще не гарантирует его содержание, но в принципе, в соответствии с этим: https://dev.mysql.com/doc/refman/5.0/en/restore-table.html то таки да, похоже на то.

ent · 01.10.2015
Правильно ли я понимаю: если у меня имеются файлы с расширениями frm, myd и myi, то их можно перевести в базу данных через phpMA с помощью команды RESTORE TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory'; ?

Это файлы описания таблицы, данные и индексы в формате MYISAM. Поэтому можно просто сделать так: создать тут - /volume1/@database/mysql каталог по имени будущей базы, например test.

Потом скопировать имеющиеся файлы в /volume1/@database/mysql/test

 

После этого в PMA вы увидите базу test и в ней одну таблицу, свежескопированную.

kelevara · 01.10.2015
Это файлы описания таблицы, данные и индексы в формате MYISAM. Поэтому можно просто сделать так: создать тут - /volume1/@database/mysql каталог по имени будущей базы, например test.

Потом скопировать имеющиеся файлы в /volume1/@database/mysql/test

 

После этого в PMA вы увидите базу test и в ней одну таблицу, свежескопированную.

 

Если можно, то с этого места немного по-медленнее =)

У меня в DS есть два раздела. Все папки - на первом, второй - под резервные копии. Т.е. если открыть File Station, то можно я вижу вот это:

 

https://yadi.sk/i/-V_3wg47jT2Rx

 

Где именно мне нужно создать папку @database? В web? Или это не принципиально, поскольку в имени папки есть специальный символ - @?

SergeS · 01.10.2015
Если можно, то с этого места немного по-медленнее =)

У меня в DS есть два раздела. Все папки - на первом, второй - под резервные копии. Т.е. если открыть File Station, то можно я вижу вот это:

 

https://yadi.sk/i/-V_3wg47jT2Rx

 

Где именно мне нужно создать папку @database? В web? Или это не принципиально, поскольку в имени папки есть специальный символ - @?

 

Все не совсем так, папка /volume1 недоступна из DSM, для доступа к ней надо использовать терминальный доступ, например программу WinSCP, предварительно разрешив этот самый терминальный доступ в DSM.

 

Теперь по поводу копирования файлов - наверное этот способ вполне будет работать, но он все же не совсем штатный для MySQL, я бы сначала попробовал бы штатный способ с командой RESTORE TABLE, да и проще, терминалка для этого не нужна.

 

p.s. Но про корректные пути не забываем, для restore table путь к файлам долже начинатся с /volume1 (скорее всего, или какой там у вас), пример: /volume1/web для shared folder /web.

DMagister · 01.10.2015

а штатный способ через mysqldump по какой причине не устраивает ?

kelevara · 01.10.2015
Все не совсем так, папка /volume1 недоступна из DSM, для доступа к ней надо использовать терминальный доступ, например программу WinSCP, предварительно разрешив этот самый терминальный доступ в DSM.

 

Теперь по поводу копирования файлов - наверное этот способ вполне будет работать, но он все же не совсем штатный для MySQL, я бы сначала попробовал бы штатный способ с командой RESTORE TABLE, да и проще, терминалка для этого не нужна.

 

p.s. Но про корректные пути не забываем, для restore table путь к файлам долже начинатся с /volume1 (скорее всего, или какой там у вас), пример: /volume1/web для shared folder /web.

 

Хм, теорию понял, но с практикой не выходит.

Файлы расположены на разделе 1, в папке web/gost/data. Там лежит набор файлов (catalog.frm, catalog.myi, catalog.myd, catalog1.frm, catalog1.myi и т.д.). Если открыть свойства любого файла, то путь к нему выглядит так:

 

/volume1/web/gost/data/catalog.frm

 

Соответственно в phpMA я создаю пустую базу данных, к примеру ecat. Далее на вкладке SQL ввожу запрос:

 

restore table catalog from '/volume1/web/gost/data';

 

В ответ получаю ошибку:

 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'restore table catalog from '/volume1/web/gost/data'' at line 1

 

Как я понял, у меня что-то не то с синтаксисом. Но что именно?

 

upd1.

Гугление показало, что возможно проблема кроется в том, что исходники сделаны для более младшей версии MySQL, чем установлена на DiskStation и видимо что-то из операторов более не поддерживается. Осталось понять, что именно.

kelevara · 01.10.2015
а штатный способ через mysqldump по какой причине не устраивает ?

 

Если я правильно понимаю, эта утилита используется для создания бекапа базы данных на работающем MySQL-сервере. Проблема в том, что в дистрибутиве системы нормативной документации, которую я хочу установить, база данных представлена в виде набора файлов в формате frm, myi и myd.

SergeS · 01.10.2015
Хм, теорию понял, но с практикой не выходит.

Файлы расположены на разделе 1, в папке web/gost/data. Там лежит набор файлов (catalog.frm, catalog.myi, catalog.myd, catalog1.frm, catalog1.myi и т.д.). Если открыть свойства любого файла, то путь к нему выглядит так:

 

/volume1/web/gost/data/catalog.frm

 

Соответственно в phpMA я создаю пустую базу данных, к примеру ecat. Далее на вкладке SQL ввожу запрос:

 

restore table catalog from '/volume1/web/gost/data';

 

В ответ получаю ошибку:

 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'restore table catalog from '/volume1/web/gost/data'' at line 1

 

Как я понял, у меня что-то не то с синтаксисом. Но что именно?

 

upd1.

Гугление показало, что возможно проблема кроется в том, что исходники сделаны для более младшей версии MySQL, чем установлена на DiskStation и видимо что-то из операторов более не поддерживается. Осталось понять, что именно.

 

Вот тут: https://dev.mysql.com/doc/refman/5.0/en/restore-table.html синтаксис этой команды БЕЗ слова "catalog", проверь еще раз синтаксис.

 

Кстати, там же написано: This statement is deprecated and is removed in MySQL 5.5.

У меня Server version: 5.5.43-MariaDB, так что возможно ты прав и именно эта команда не поддерживается больше. Чем заменить - не знаю...

kelevara · 01.10.2015
Вот тут: https://dev.mysql.com/doc/refman/5.0/en/restore-table.html синтаксис этой команды БЕЗ слова "catalog", проверь еще раз синтаксис.

 

Кстати, там же написано: This statement is deprecated and is removed in MySQL 5.5.

У меня Server version: 5.5.43-MariaDB, так что возможно ты прав и именно эта команда не поддерживается больше. Чем заменить - не знаю...

 

Беда =( Наверное проблема действительно в версии...

А catalog - это название таблицы, которую я хочу перенести в базу данных.

 

 

Хорошо, а если пойти сложным путем - закинуть файлы в папку @database вручную? Что именно для этого нужно, вернее что можно почитать на эту тему?

 

SergeS · 01.10.2015
Беда =( Наверное проблема действительно в версии...

А catalog - это название таблицы, которую я хочу перенести в базу данных.

 

А, ну да, стормозил :-)

 

Хорошо, а если пойти сложным путем - закинуть файлы в папку @database вручную? Что именно для этого нужно, вернее что можно почитать на эту тему?

 

да читать особо ничего не надо, я уже сказал, что нужно - разрешить терминальный доступ в DSM, установить на win-компьютер WinSCP, настроить в ней соединение и подключится, там все сам увидишь. При подключении надо использовать протокол SCP, имя root и такой же пароль, как для админа в DSM.

kelevara · 02.10.2015
да читать особо ничего не надо, я уже сказал, что нужно - разрешить терминальный доступ в DSM, установить на win-компьютер WinSCP, настроить в ней соединение и подключится, там все сам увидишь. При подключении надо использовать протокол SCP, имя root и такой же пароль, как для админа в DSM.

 

Да, проблем с этим действительно не возникло, все завелось с пол оборота =)

 

Дальше, судя по инструкции базы НД, нужно установить perl (вернее ActivePerl + доп. модули DBI, DBD-mysql, Lingua-Stem, Lingua-Stem-Ru) и Apache в качестве web-сервера.

Я правильно понимаю, что стандартного Perl DiskStation должно хватить? И как можно для него догружать дополнительные модули?

Что касается web-сервера, то у DiskStation-а опять же есть свой стандартный. Единственные вопросы - где находится файл настроек httpd.conf (вернее наверное его аналог) и куда выгружать cgi-скрипты? Создать в папке www/site_name подкаталог cgi-bin?

SergeS · 02.10.2015
Да, проблем с этим действительно не возникло, все завелось с пол оборота =)

 

Дальше, судя по инструкции базы НД, нужно установить perl (вернее ActivePerl + доп. модули DBI, DBD-mysql, Lingua-Stem, Lingua-Stem-Ru) и Apache в качестве web-сервера.

Я правильно понимаю, что стандартного Perl DiskStation должно хватить? И как можно для него догружать дополнительные модули?

Что касается web-сервера, то у DiskStation-а опять же есть свой стандартный. Единственные вопросы - где находится файл настроек httpd.conf (вернее наверное его аналог) и куда выгружать cgi-скрипты? Создать в папке www/site_name подкаталог cgi-bin?

 

Не знаю, тут я не копенгаген на фоне местных гуру, ничего тебе сказать не могу, кроме того, что апач в synology уже есть, web station - это он и есть.

me1k · 26.02.2016

Добрый день! Чем закончилась история? Так же нужно поднять на DS базу ГОСТ.

kelevara · 26.02.2016
Добрый день! Чем закончилась история? Так же нужно поднять на DS базу ГОСТ.

 

Добрый день!

К сожалению ничем =( Слишком много работы - слишком мало времени на эксперименты. Если у Вас что-то получится, буду признателен за любую информацию!

me1k · 26.02.2016
Добрый день!

К сожалению ничем =( Слишком много работы - слишком мало времени на эксперименты. Если у Вас что-то получится, буду признателен за любую информацию!

Хорошо, будем пробовать :)