Page 1 of 1

Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 8:56 pm
by Messiah
Добрый вечер

Только установил VestaCP, на вид все круто, спасибо.

Создал 1й сайт и БД, создал 1 таблицу dbtest1, пытаюсь найти где хранятся сами файлы:
в конфиге /var/lib/mysql, но там только БД mysql и performance_schema.
в /home/admin тоже нет.
через Find говорит
No such file or directory
(искал как по имени каталога = имя базы, так и по имени файла.* = имя таблицы).

Потом обнаружил что таблица по умолчанию создалась как InnoDB. Поскольку я всегда работаю с MyISAM - захотел сменить тип и получаю
#1 - Can't create/write to file '/var/lib/mysql/admin_ods/#sql-7d35_4f.MYI' (Errcode: 2)
Собственно решить надо 2 задачи:
1. сменить тип на MyISAM и поставить его по умолчанию
2. методом копирования файлов tablename.* перенести парочку таблиц с другого сервера (там такие таблицы что экспорт-импорт в .sql напрягает по времени) - делаю так уже раз 4й.

P.S. вообще парадокс, mysql не может записать в /var/lib/mysql, а именно создать там каталог
права стоят rwx-rw----- владелец mysql:root, пользователь под которым запущен сервер mysql - по идее права должны быть

P.S.2 еще в эту же кучу. Доступ к панели идет на порту 8083 по https. При этом ссылки с панели на phpmyadmin идут по незащищенному каналу. Стремно. Как изменить, чтобы не терять совместимость при обновлении?

Re: Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 9:12 pm
by imperio
Здравствуйте.
Потом обнаружил что таблица по умолчанию создалась как InnoDB
какой тип таблиц использовать - выбирает ваш скрипт.
пытаюсь найти где хранятся сами файлы
методом копирования файлов tablename.* перенести парочку таблиц с другого сервера
/var/lib/mysql
должны быть папки с названием базы. Таблицы хранятся в файлах со специальным расширением. Нельзя их переносить, или импортировать.
там такие таблицы что экспорт-импорт в .sql напрягает по времени
другого выхода нет. Используйте формат gzip и увеличьте лимиты на импорт в php.ini
Или используйте программу Sypex Dumper
сменить тип на MyISAM
в phpmyadmin попробуйте выполнить запрос

Code: Select all

ALTER TABLE example engine=MyISAM;
вместо example - имя таблицы

Re: Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 9:15 pm
by imperio
вообще парадокс, mysql не может записать в /var/lib/mysql, а именно создать там каталог
Укажите вашу ОС

Re: Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 9:22 pm
by Messiah
Спасибо за оперативный ответ. Стал дописывать в тот же пост, потом заметил ответ

Mysql сервер не может получить доступ к /var/lib/mysql, хотя права вроде правильные.
и Alter, и CREATE вручную с указанием типа попадают на те же грабли.
OS: Debian 7.0

По поводу копипаста - я уже несколько переносов разных БД так делал - корпируется весь каталог равный названию базы, в нем каждой таблице соотв. несколько файлов с разными расширениями, на новой системе запускается оптимизация таблиц и все работает. Но сейчас до этого дело еще не дошло - хочу чтобы панель для начала работала, а потом уже докину оставшиеся несколько таблиц руками.

P.S.2 еще в эту же кучу. Доступ к панели идет на порту 8083 по https. При этом ссылки с панели на phpmyadmin идут по незащищенному каналу. Стремно. Как изменить, чтобы не терять совместимость при обновлении?

И далее по Phpmyadmin. Импорт - пишет макс. файл 2МБ. Верю. Выбираю файл 1Мб с небольшим - летит
Операция импорта невозможна. Причины: не выбран импортируемый файл; размер импортируемого файла превышает максимально допустимый, заданный в настройках PHP. Смотрите FAQ 1.16.

Re: Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 9:30 pm
by imperio
/var/lib/mysql
вообще на папку mysql должны быть права 700 и владелец/группа mysql/mysql
Операция импорта невозможна. Причины: не выбран импортируемый файл; размер импортируемого файла превышает максимально допустимый, заданный в настройках PHP. Смотрите FAQ 1.16.
/etc/php5/apache2/php.ini
измените значения директив

Code: Select all

post_max_size =
upload_max_filesize =
к примеру выставите для обоих по 50 мб

Code: Select all

post_max_size = 50M
upload_max_filesize = 50M
и рестарт apache

Code: Select all

service apache2 restart
/var/lib/phpmyadmin/tmp
для папки tmp выставите chmod 777
(проблема такая есть с правами на эту папку и уже решена в ближайшем релизе)

Re: Mysql где физически хранит данные?

Posted: Sun Apr 06, 2014 9:51 pm
by Messiah
Phpmyadmin заработал. А все таки его можно в ssl завернуть?

Первый же запрос CREATE TABLE (myisam) вылетел
#1 - Can't create/write to file '/var/lib/mysql/admin_ods/ods_admin_logs.MYI' (Errcode: 2)
на /var/lib/mysql стоит mysql:mysql Permissions: 40700 (rwx --- ---) - каталог admin_ods в нем не создался.
Поставил на mysql права 777 - та же байда
Перезапускаю mysql - ошибка остановки, прибил через top - запускаю (опять с проблемами, innodb_use_native_aio 0 уже прописывал при установке, пропало). После запуска
root@www:/var/log/mysql# service mysql start
[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
root@www:/var/log/mysql# ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
root@www:/var/log/mysql# mc
Но ни у кого из пользователей нет доступа к БД,
#1045 Невозможно подключиться к серверу MySQL
CMS'ka пишет
Access denied for user ...
Права на каталог вернул, перезагрузил mysql, все равно не пускает, причем даже с панели создать новую БД не могу
Error: Connection failed
Есть отдаленное впечатление что с пол года назад я такое уже видел и все решилось сносом centos и установой debian, то был чистый сервер, а тут уже кое-что работает, так что не вариант

Re: Mysql где физически хранит данные?

Posted: Tue Apr 08, 2014 11:35 pm
by Messiah
Удалось восстановить работу mysql
команда mysql -u root ломится в базу с неизвестно каким паролем, хотя пароль рута пустой, без пароля захожу.
пользователя debian-sys-maint, из под которого при запуске бд что-то делается (скорее всего считывается список пользователей и привилегий) не было, добавил сам с тем паролем что в debian.cnf. Зайти под ним могу через phpmyadmin, но панель
Error: Connection failed
как восстановить работоспособность? какой там юзер?

Re: Mysql где физически хранит данные?

Posted: Wed Apr 09, 2014 2:11 pm
by imperio
Укажите новый пароль в mysql конфиге панели
/usr/local/vesta/conf/mysql.conf

Code: Select all

USER='root' PASSWORD='новый_пароль'
Пароль должен быть таким же как и пароль, который вы меняли для root mysql

Re: Mysql где физически хранит данные?

Posted: Wed Apr 09, 2014 9:50 pm
by Messiah
Спасибо, проблемы решены.

На правах предложения: все таки по умолчанию завернуть phpmyadmin в httpS, а то по открытым каналам не интересно.

Re: Mysql где физически хранит данные?

Posted: Wed Apr 09, 2014 9:52 pm
by imperio
Зарегистрируйте пожелание в багзилле
https://bugs.vestacp.com/