We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Добавление базы данных с именем без префикса
-
- Posts: 26
- Joined: Sun Jun 09, 2019 5:48 pm
- Contact:
- Os: Debian 8x
- Web: apache + nginx
Добавление базы данных с именем без префикса
Здравствуйте!
Для одного проекта потребовалось добавить пользователю базу данных с именем, таким же как имя пользователя без префикса.
Добавил вручную:
Теперь хотелось бы сделать так, чтобы база появилась в панели, в списке баз пользователя usrname.
Нашел совет viewtopic.php?t=13902, где рекомендовали создать файл /usr/local/vesta/data/users/some_vestacp_user/db.conf и добавить в него строку:
Обновил пользователя через v-rebuild-user some_vestacp_user.
У пользователя теперь пишет, что есть одна база, но в списке баз ее нет.
Подскажите, пожалуйста, как мне правильно добавить созданную базу данных без префикса в имени в список баз данных пользователя?
Спасибо!
Для одного проекта потребовалось добавить пользователю базу данных с именем, таким же как имя пользователя без префикса.
Добавил вручную:
Code: Select all
mysql -u root
create database usrname;
grant all privileges on usrname.* to 'usrname'@'localhost' identified by "******";
Нашел совет viewtopic.php?t=13902, где рекомендовали создать файл /usr/local/vesta/data/users/some_vestacp_user/db.conf и добавить в него строку:
Code: Select all
DB='dbname-created-above' DBUSER='someuser-created-above' MD5='' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='1' SUSPENDED='no' TIME='12:00:00' DATE='2017-06-12'
У пользователя теперь пишет, что есть одна база, но в списке баз ее нет.
Подскажите, пожалуйста, как мне правильно добавить созданную базу данных без префикса в имени в список баз данных пользователя?
Спасибо!
Re: Добавление базы данных с именем без префикса
Странно.AlexandreFrolov wrote: ↑Wed Jun 19, 2019 9:56 amЗдравствуйте!
Для одного проекта потребовалось добавить пользователю базу данных с именем, таким же как имя пользователя без префикса.
Добавил вручную:
Теперь хотелось бы сделать так, чтобы база появилась в панели, в списке баз пользователя usrname.Code: Select all
mysql -u root create database usrname; grant all privileges on usrname.* to 'usrname'@'localhost' identified by "******";
Нашел совет viewtopic.php?t=13902, где рекомендовали создать файл /usr/local/vesta/data/users/some_vestacp_user/db.conf и добавить в него строку:
Обновил пользователя через v-rebuild-user some_vestacp_user.Code: Select all
DB='dbname-created-above' DBUSER='someuser-created-above' MD5='' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='1' SUSPENDED='no' TIME='12:00:00' DATE='2017-06-12'
У пользователя теперь пишет, что есть одна база, но в списке баз ее нет.
Подскажите, пожалуйста, как мне правильно добавить созданную базу данных без префикса в имени в список баз данных пользователя?
Спасибо!
А самой базе mysql в таблицах где прописывает данные может чего -то не хватает ?
Используйте phpmyadmin
-
- Posts: 26
- Joined: Sun Jun 09, 2019 5:48 pm
- Contact:
- Os: Debian 8x
- Web: apache + nginx
Re: Добавление базы данных с именем без префикса
В phpmyadmin пускает после создания базы указанным выше способом и установки пароля:
Code: Select all
MariaDB [(none)]> SET PASSWORD FOR 'usrname'@'localhost' = PASSWORD('******');FLUSH PRIVILEGES;
MariaDB [(none)]> SET PASSWORD FOR 'usrname'@'%' = PASSWORD('******');FLUSH PRIVILEGES;
Однако в панели база так и не появляется в списке баз, хотя написано, что у пользователя есть одна база.
Это тоже не показывает каких-либо особых отличий от баз данных, созданных панелью:
Code: Select all
select * from user;
-
- Posts: 26
- Joined: Sun Jun 09, 2019 5:48 pm
- Contact:
- Os: Debian 8x
- Web: apache + nginx
Re: Добавление базы данных с именем без префикса
Решил проблему таким способом.
Скопировал /usr/local/vesta/bin/v-add-database в /usr/local/vesta/bin/v-add-database-noprefix и внес такие изменения:
После этого добавил базу данных:
И она появилась в списке баз данных у пользователя.
Скопировал /usr/local/vesta/bin/v-add-database в /usr/local/vesta/bin/v-add-database-noprefix и внес такие изменения:
Code: Select all
#database="$user"_"$2"
#dbuser="$user"_"$3"
database=$2
dbuser=$3
Code: Select all
/usr/local/vesta/bin/v-add-database-noprefix atest atest atest pwd*** mysql localhost CP1251
Re: Добавление базы данных с именем без префикса
Поздравляю!AlexandreFrolov wrote: ↑Wed Jun 19, 2019 1:55 pmРешил проблему таким способом.
Скопировал /usr/local/vesta/bin/v-add-database в /usr/local/vesta/bin/v-add-database-noprefix и внес такие изменения:После этого добавил базу данных:Code: Select all
#database="$user"_"$2" #dbuser="$user"_"$3" database=$2 dbuser=$3
И она появилась в списке баз данных у пользователя.Code: Select all
/usr/local/vesta/bin/v-add-database-noprefix atest atest atest pwd*** mysql localhost CP1251
А не хотел бы и если возможно написать небольшой tutorial/manual ка ты это сделал и для чего это возможно будет нужно.
-
- Posts: 26
- Joined: Sun Jun 09, 2019 5:48 pm
- Contact:
- Os: Debian 8x
- Web: apache + nginx
Re: Добавление базы данных с именем без префикса
На tutorial не потянет, но небольшое описание сделаю:
Панель Vesta CP при создании базы данных принудительно добавляет к имени базы данных и к логину пользователя БД префикс в виде идентификатора пользователя.
Например, если для пользователя sunuser вы создаете базу данных dbconf и пользователя БД dbconf, то будет создана база sunuser_dbconf и логин для нее sunuser_dbconf.
Такой прием позволяет избавиться от ошибок, когда разные пользователи панели пытаются создать БД с одним и тем же именем, и в большинстве случаев это оправдано. Пользователь может создавать свои базы данных, не беспокоясь о конфиликтах имен.
Однако может возникнуть необходимость переноса на сервер с панелью Vesta CP созданных ранее проектов, в которых используется другая система имен баз данных и их логинов. При этом по тем или иным причинам изменение имени базы данных в переносимом проекте крайне нежелательно.
Например, сейчас я рассматриваю возможность переноса своего SAAS-сервиса интернет-магазинов на серверы, где вместо панели ISPmanager будет установлена панель Vesta CP.
В процессе такого переноса возникает необходимость обеспечить существующие стандарты на расположение файлов сайтов в каталогах, на именование баз данных и логинов к ним и другие.
Сайты магазинов размещаются на десятках физических серверов, и при переносе недопустима даже временная недоступность интернет-магазинов, поэтому задача не очень тривиальная.
Среди многочисленных сервисов, обеспечивающих работу системы, есть такие, которые размещаются на каждом физическом или виртуальном сервере. Их модификация на отдельных серверах (например, изменение имени базы данных) нежелательна, т.к. вместо одного сервиса получим два разных. При этом на одной части серверов будет работать одна модификация сервиса, а на другой -- другая.
В этом случае новые серверы с панелью Vesta CP нужно настроить таким образом, чтобы на них можно было переносить сайты и сервисы с уже существующих серверов в неизменном виде. Перенос предполагается выполнять с помощью заранее подготовленных скриптов, вызывающих Vesta CP через CLI и API.
Проблема совместимости по физическим путям к файлам и каталогам решается относительно просто с помощью симлинков. Что же касается создания баз данных с нестандартной для Vesta CP системой именования баз и логинов для них, то мы использовали модифицированный файл /usr/local/vesta/bin/v-add-database. Это скрипт CLI, который позволяет создавать базы данных.
Если подключиться к серверу как root и открыть файл /usr/local/vesta/bin/v-add-database в любом текстовом редакторе (например, VIM), то в начале файла можно увидеть строки:
Code: Select all
...
database="$user"_"$2"
dbuser="$user"_"$3"
...
Чтобы получить возможность создавать БД без префикса, скопируйте файл /usr/local/vesta/bin/v-add-database в /usr/local/vesta/bin/v-add-database-noprefix:
Code: Select all
# cp /usr/local/vesta/bin/v-add-database /usr/local/vesta/bin/v-add-database-noprefix
Code: Select all
# vim /usr/local/vesta/bin/v-add-database-noprefix
Code: Select all
database=$2
dbuser=$3
После этого вы сможете создавать базы данных через CLI командой v-add-database-noprefix таким же образом, что и командой v-add-database, однако теперь не будут добавляться префиксы к имени и логину БД.