вопросы по mysql

12 3
L1
На сайте с 13.10.2009
Offline
23
4858

Здравствуйте, профессионалы.

Есть несколько вопросов по серверу mysql (5.0.51a-24+lenny4-log)

В последнее время падал процесс mysql. После того как сменил настройки my.cnf падений пару недель не было, но вот и началось

cat /var/log/daemon.log | grep mysql


.............
Jul 3 13:31:13 s1 mysqld[9903]: 100703 13:31:13 [Warning] Aborted connection 591338 to db: 'geola152_db' user: 'geola152_user' host: 'localhost' (Got timeout reading communication packets)
Jul 3 13:33:14 s1 mysqld[9903]: 100703 13:33:14 [ERROR] /usr/sbin/mysqld: Disk is full writing '/var/lib/mysql/geola104_twitt/posts.MYI' (Errcode: 122). Waiting for someone to free space... Retry in 60 secs
Jul 3 13:34:34 s1 mysqld[9903]: 100703 13:34:34 [Warning] Aborted connection 591494 to db: 'geola152_db' user: 'geola152_user' host: 'localhost' (Got timeout reading communication packets)
.................
Jul 3 13:43:10 s1 mysqld[9903]: 100703 13:43:10 [Warning] Aborted connection 591867 to db: 'galyn959_db' user: 'galyn959_user' host: 'localhost' (Got timeout reading communication packets)
Jul 3 13:43:14 s1 mysqld[9903]: 100703 13:43:14 [ERROR] /usr/sbin/mysqld: {{{{1}}}} Disk is full writing '/var/lib/mysql/geola104_twitt/posts.MYI' (Errcode: 122). Waiting for someone to free space... Retry in 60 secs
Jul 3 14:03:14 s1 mysqld[9903]: 100703 14:03:14 [ERROR] /usr/sbin/mysqld: Disk is full writing '/var/lib/mysql/geola104_twitt/posts.MYI' (Errcode: 122). Waiting for someone to free space... Retry in 60 secs
Jul 3 14:10:01 s1 watchdog[14392]: stop command '/etc/init.d/mysql stop'
Jul 3 14:10:11 s1 watchdog[14392]: process name 'mysqld'
Jul 3 14:10:11 s1 watchdog[14392]: start command '/etc/init.d/mysql start'
Jul 3 14:10:11 s1 mysqld_safe[14617]: Number of processes running now: 0
Jul 3 14:10:11 s1 mysqld_safe[14619]: restarted

Jul 3 14:10:11 s1 mysqld[14622]: #007/usr/sbin/mysqld: File '/var/log/mysql-slow-query.log' not found (Errcode: 13)
Jul 3 14:10:11 s1 mysqld[14622]: 100703 14:10:11 [ERROR] Could not use /var/log/mysql-slow-query.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
Jul 3 14:10:12 s1 mysqld_safe[14660]: started
Jul 3 14:10:12 s1 mysqld[14663]: #007/usr/sbin/mysqld: File '/var/log/mysql-slow-query.log' not found (Errcode: 13) {{{{2}}}}
Jul 3 14:10:12 s1 mysqld[14663]: 100703 14:10:12 [ERROR] Could not use /var/log/mysql-slow-query.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
Jul 3 14:10:12 s1 mysqld[14663]: InnoDB: Unable to lock ./ibdata1, error: 11
Jul 3 14:10:12 s1 mysqld[14663]: InnoDB: Check that you do not already have another mysqld process
Jul 3 14:10:12 s1 mysqld[14663]: InnoDB: using the same InnoDB data or log files.
Jul 3 14:10:12 s1 mysqld[14663]: 100703 14:10:12 InnoDB: Retrying to lock the first data file
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: The log sequence number in ibdata files does not match
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: the log sequence number in the ib_logfiles!
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 InnoDB: Database was not shut down normally!
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: Starting crash recovery.
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: Reading tablespace information from the .ibd files...
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: Restoring possible half-written data pages from the doublewrite
Jul 3 14:10:12 s1 mysqld[14622]: InnoDB: buffer...
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 InnoDB: Started; log sequence number 0 5898898
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 [Warning] 'user' entry 'root@s1.sdsdsd.com' ignored in --skip-name-resolve mode.
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 [Warning] 'user' entry 'flowers_tmk@dsbl_localhost' ignored in --skip-name-resolve mode.
................
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 [Warning] 'db' entry 'funti131_frog funti131_frog@dsbl_%' ignored in --skip-name-resolve mode.
Jul 3 14:10:12 s1 mysqld[14622]: 100703 14:10:12 [Note] /usr/sbin/mysqld: ready for connections.
Jul 3 14:10:12 s1 mysqld[14622]: Version: '5.0.51a-24+lenny4-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Debian)
Jul 3 14:10:12 s1 /etc/mysql/debian-start[14696]: Upgrading MySQL tables if necessary.
Jul 3 14:10:13 s1 mysqld[14663]: InnoDB: Unable to lock ./ibdata1, error: 11
Jul 3 14:10:13 s1 mysqld[14663]: InnoDB: Check that you do not already have another mysqld process
Jul 3 14:10:13 s1 mysqld[14663]: InnoDB: using the same InnoDB data or log files.
Jul 3 14:10:13 s1 mysqld[14622]: 100703 14:10:13 [ERROR] /usr/sbin/mysqld: Table './geola181_db/wp_options' is marked as crashed and should be repaired
Jul 3 14:10:13 s1 mysqld[14622]: 100703 14:10:13 [Warning] Checking table: './geola181_db/wp_options'
Jul 3 14:10:13 s1 /etc/mysql/debian-start[14701]: Looking for 'mysql' in: /usr/bin/mysql
Jul 3 14:10:13 s1 /etc/mysql/debian-start[14701]: Looking for 'mysqlcheck' in: /usr/bin/mysqlcheck
Jul 3 14:10:13 s1 /etc/mysql/debian-start[14701]: This installation of MySQL is already upgraded to 5.0.51a, use --force if you still need to run mysql_upgrade
Jul 3 14:10:13 s1 /etc/mysql/debian-start[14709]: Checking for insecure root accounts.
Jul 3 14:10:13 s1 /etc/mysql/debian-start[14713]: Triggering myisam-recover for all MyISAM tables
Jul 3 14:10:13 s1 mysqld[14622]: 100703 14:10:13 [ERROR] /usr/sbin/mysqld: Table './acsy867_acsy_blog/acsy_options' is marked as crashed and should be repaired
Jul 3 14:10:13 s1 mysqld[14622]: 100703 14:10:13 [Warning] Checking table: './acsy867_acsy_blog/acsy_options'
.............
Jul 3 14:10:14 s1 mysqld[14663]: InnoDB: Unable to lock ./ibdata1, error: 11
Jul 3 14:10:14 s1 mysqld[14663]: InnoDB: Check that you do not already have another mysqld process
Jul 3 14:10:14 s1 mysqld[14663]: InnoDB: using the same InnoDB data or log files.
................
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: using the same InnoDB data or log files.
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 InnoDB: Unable to open the first data file
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: Error in opening ./ibdata1
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 InnoDB: Operating system error number 11 in a file operation.
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: Error number 11 means 'Resource temporarily unavailable'.
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: Some operating system error numbers are described at
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: http://dev.mysql.com/doc/refman/5.0/en/operating-system-error-codes.html
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: Could not open or create data files.
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: If you tried to add new data files, and it failed here,
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: you should now edit innodb_data_file_path in my.cnf back
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: to what it was, and remove the new ibdata files InnoDB created
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: in this failed attempt. InnoDB only wrote those files full of
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: zeros, but did not yet use them in any way. But be careful: do not
Jul 3 14:11:52 s1 mysqld[14663]: InnoDB: remove old data files which contain your precious data!
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 [ERROR] Do you already have another mysqld server running on port: 3306 ?
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 [ERROR] Aborting
Jul 3 14:11:52 s1 mysqld[14663]:
Jul 3 14:11:52 s1 mysqld[14663]: 100703 14:11:52 [Note] /usr/sbin/mysqld: Shutdown complete
Jul 3 14:11:52 s1 mysqld[14663]:
Jul 3 14:11:52 s1 mysqld_safe[23653]: ended
Jul 3 14:12:48 s1 mysqld[14622]: 100703 14:12:48 [Warning] Aborted connection 8910 to db: 'geola152_db' user: 'geola152_user' host: 'localhost' (Got timeout reading communication packets)

{{{{1}}}} - в юзера закончилось место. И такое впечатление, что поэтому перегрузився mysql

{{{{2}}}} - ну файл конфига уже создал.

На счет лога дальше идей нет. Конечно что там есть много информации о восстановлении таблиц после некорректного завершения работы.

Но понять причину падения mysql не могу

какие у вас будут соображения или рекомендации?

txt s1-my.txt
D
На сайте с 11.05.2010
Offline
15
#1

Судя по логам, то в /var закончилось место, поэтому mysql и рухнул. Выключите логирование, так же если не используете InnoDB, то тоже выключите.

С напильником и бубном (http://kaba.org.ua)
L1
На сайте с 13.10.2009
Offline
23
#2
delicate:
Судя по логам, то в /var закончилось место, поэтому mysql и рухнул. Выключите логирование, так же если не используете InnoDB, то тоже выключите.

/var - на общем разделе

s1:~# df -h

Filesystem Size Used Avail Use% Mounted on
/dev/md3 689G 32G 622G 5% /
tmpfs 4.0G 0 4.0G 0% /lib/init/rw
udev 10M 776K 9.3M 8% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
/dev/md1 514M 28M 460M 6% /boot

Но там квоты для каждого пользователя, и в некоторых свободного места не осталось

Разве мускулы падает от того что в некоторых пользователей закончилась квота?? Это возможно?

N
На сайте с 06.05.2007
Offline
419
#3

да, 122 - это квота. команда perror подскажет : OS error code 122: Disk quota exceeded

если вы догадались зачем-то сравнять квоты всех пользователей на сервере, такое вполне может произойти.

Для пользователя mysql квота не нужна.

Нет нормально возможности ограничивать размер баз в mysql, но можно переодически замерять и выставлять счет за превышение.

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#4

Если только myisam, то можно попробовать при создании базы делать на ее директории:

1) chown mysql:usergroup databasedir/

2) chmod 2755 databasedir/

Новые файлы будут mysql:usergroup и учитываться групповыми квотами. Как-то так.

PS: Use LVM, Luke :) Разбивка диска одним большим разделом - эт плёхо.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
L1
На сайте с 13.10.2009
Offline
23
#5

использую ISPManager Pro, на Debian 5, если ето чтото меняет

т.е. в некоторых пользователей закончилась квота на диске.

Я правильно понял, это из-за этого mysql перегружаеться???

N
На сайте с 06.05.2007
Offline
419
#6

myhand, а что произойдет, когда mysql не сможет записать файлы при insert? а бинлоги ?

И да, разбивка одним разделом, в данном случае с одним диском raid, избавляет от необходимости оценивать потребление диска по этим самым разделам. Конечно, lvm тоже решает подобные проблемы, но зачем их вообще себе создавать?

local123, mysql запускается из под пользователя mysql и квота закончилась у этого пользователя.

M
На сайте с 01.12.2009
Offline
235
#7
local123:
использую ISPManager Pro, на Debian 5, если ето чтото меняет
т.е. в некоторых пользователей закончилась квота на диске.

Я правильно понял, это из-за этого mysql перегружаеться???

Если я правильно понял вас, значит я правильно понял что поняли вы, и сказали значит то что видимо верно.

Администратор Linux,Freebsd. построения крупных проектов.
M
На сайте с 16.09.2009
Offline
278
#8
netwind:
myhand, а что произойдет, когда mysql не сможет записать файлы при insert? а бинлоги ?

Бинлоги на виртуальном хостинге может и не нужны?

N
На сайте с 06.05.2007
Offline
419
#9

myhand, но вопрос не в них, а в том какие еще веселые баги вы увидите при попытке ограничить mysql - на длительное время подвиснет выполнение запросов этого пользователя (эта ошибка временная) и лимит на подключения быстро исчерпается. А если сервер для "исправления" перегрузить, то и таблицы попортятся.

Короче, не вариант это.

А бинлогов не бойтесь - они не тормозят, так как запись в них последовательная и буфферизируемая. C другой стороны, на хостинге с бинлогами, можно восстановить данные в любой момент, а не только на момент создания резервных копий.

L1
На сайте с 13.10.2009
Offline
23
#10

Заметил вот такой скачок, в момент когда возникли проблеми с mysql:

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий