SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.05.2012 12:04:56

Xatter
Участник
Зарегистрирован: 08.05.2012
Сообщений: 7

Не поднимается мускул.

В общем в кратце, был перепад света, после включения сервера мускул умер. (До этого работал 7 месяцев всё было ок)

При попытке соединиться с сервером:
mysql
error 2002 (hy000) can't connect to local mysql server through socket '/tmp/mysql.sock' (2) freebsd

Переустановил сам скуль до версии 5.2.23

Стартуем мускуд:
/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/mysql-server status
mysql is not running.

Вот лог файла из /var/db/mysql/ИмяМашины.err


120508 11:58:07 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
120508 11:58:07 InnoDB: The InnoDB memory heap is disabled
120508 11:58:07 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120508 11:58:07 InnoDB: Compressed tables use zlib 1.2.5
120508 11:58:07 InnoDB: Initializing buffer pool, size = 128.0M
120508 11:58:07 InnoDB: Completed initialization of buffer pool
120508 11:58:07 InnoDB: highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 144555117877
120508 11:58:07  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Error: tried to read 1048576 bytes at offset 0 1048576.
InnoDB: Was only able to read -1.
120508 11:58:16  InnoDB: Operating system error number 5 in a file operation.
InnoDB: Error number 5 means 'Input/output error'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/ … codes.html
InnoDB: File operation call: 'read'.
InnoDB: Cannot continue operation.
120508 11:58:16 mysqld_safe mysqld from pid file /var/db/mysql/etc.pid ended

Права на папки /var/db/mysql и /tmp дал, толку 0, выручайте smile

Неактивен

 

#2 09.05.2012 11:32:14

Xatter
Участник
Зарегистрирован: 08.05.2012
Сообщений: 7

Re: Не поднимается мускул.

Отвечу для тех кто пришел сюда из гугла. Как печально это и не было, но слетела вся база sad Восстанавливать файлы из каталога /var/db/mysql я не стал а тупо восстановил всё бекапом базы (у меня бекапилось все на ФТП сервер и на самом сервере делался тоже бекапчик ).

Неактивен

 

#3 10.05.2012 12:30:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Не поднимается мускул.

Хым, как-то я пропустил это сообщение. Выглядит как битый диск / ФС, судя по
IO error. Я бы еще рекомендовал проверить ФС на ошибки.

Неактивен

 

#4 15.12.2018 10:18:44

WideAreaNetwork
Участник
Зарегистрирован: 15.12.2018
Сообщений: 3

Re: Не поднимается мускул.

всем привет!
ситуация аналогичная наверное, после выключения света не стартует мускул
подскажите пжл с чего начать?
стоит боевой сервер, который все в одном, биллинг-нат-нетфлоу-роутер и т.д., предоставляется доступ абонентов в интернет

# uname -a
FreeBSD homeline 11.2-RELEASE-p5 FreeBSD 11.2-RELEASE-p5 #0: Tue Nov 27 09:33:52 UTC 2018     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64


# pkg info mysql56-server
mysql56-server-5.6.42
Name           : mysql56-server
Version        : 5.6.42
Installed on   : Thu Nov 29 05:53:01 2018 EET
Origin         : databases/mysql56-server
Architecture   : FreeBSD:11:amd64
Prefix         : /usr/local
Categories     : databases ipv6
Licenses       : GPLv2
Maintainer     : mmokhi@FreeBSD.org
WWW            : <a href="http://www.mysql.com/">http://www.mysql.com/</a>
Comment        : Multithreaded SQL database (server)
Options        :
        ARCHIVE        : off
        BLACKHOLE      : off
        EXAMPLE        : off
        FEDERATED      : off
        INNOBASE       : off
        PARTITION      : off
        PERFSCHEMA     : off
        PERFSCHM       : on
Annotations    :
        FreeBSD_version: 1102000
        cpe            : cpe:2.3:a:mysql:mysql:5.6.42:::::freebsd11:x64
        repo_type      : binary
        repository     : FreeBSD
Flat size      : 81.9MiB
Description    :
MySQL is a very fast, multi-threaded, multi-user and robust SQL
(Structured Query Language) database server.

WWW: <a href="http://www.mysql.com/">http://www.mysql.com/</a>
 


при попытке войти получаем
# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)


в логах
14.12.2018 23:16:46 [(eval 7)::BEGIN(1) calls.pm(35) Db.pm::line(143) Db.pm::sql(112) Db.pm::connect(99)]
No DB connection, DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=5 : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
14.12.2018 23:16:46 [(eval 7)::BEGIN(1) calls.pm(35) Db.pm::line(143) Db.pm::sql(121)]
mysql is disconnected
14.12.2018 23:16:46 [stat.pl(109) (eval 7)(1) (eval 7)(1) (eval 7)::BEGIN(1) stat.pl::__ANON__(30) stat.pl(30) stat.pl::Hard_exit(89) stat.pl(90)]
No DB connection at /usr/local/nodeny/web/calls.pm line 42.
Compilation failed in require at (eval 7) line 1.

14.12.2018 23:16:46 [stat.pl(109) (eval 7)(1) (eval 7)(1) (eval 7)::BEGIN(1) stat.pl::__ANON__(30) stat.pl(30) stat.pl::Hard_exit(89) stat.pl(92)]
Elapsed time: 1.164423 sec


181214 14:03:35 mysqld_safe Logging to '/var/db/mysql/homeline.err'.
181214 14:03:35 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
2018-12-14 14:03:37 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-12-14 14:03:37 0 [Note] /usr/local/libexec/mysqld (mysqld 5.6.42) starting as process 2433 ...
2018-12-14 14:03:37 2433 [Note] Plugin 'FEDERATED' is disabled.
2018-12-14 14:03:37 2433 [Note] InnoDB: Using atomics to ref count buffer pool pages
2018-12-14 14:03:37 2433 [Note] InnoDB: The InnoDB memory heap is disabled
2018-12-14 14:03:37 2433 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-12-14 14:03:37 2433 [Note] InnoDB: Memory barrier is not used
2018-12-14 14:03:37 2433 [Note] InnoDB: Compressed tables use zlib 1.2.11
2018-12-14 14:03:37 2433 [Note] InnoDB: Not using CPU crc32 instructions
2018-12-14 14:03:37 2433 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-12-14 14:03:37 2433 [Note] InnoDB: Completed initialization of buffer pool
2018-12-14 14:03:37 2433 [Note] InnoDB: Highest supported file format is Barracuda.
2018-12-14 14:03:37 2433 [Note] InnoDB: The log sequence numbers 13475082 and 13475082 in ibdata files do not match the log sequence number 102785521 in the ib_logfiles!
2018-12-14 14:03:37 2433 [Note] InnoDB: Database was not shutdown normally!
2018-12-14 14:03:37 2433 [Note] InnoDB: Starting crash recovery.
2018-12-14 14:03:37 2433 [Note] InnoDB: Reading tablespace information from the .ibd files...
2018-12-14 14:03:37 2433 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/innodb_index_stats uses space ID: 2 at filepath: ./mysql/innodb_index_stats.ibd. Cannot open tablespace nodeny/auth_log which uses space ID: 2 at filepath: ./nodeny/auth_log.ibd
2018-12-14 14:03:37 803616000  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: Error: could not open single-table tablespace file ./nodeny/auth_log.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.


файл my.cnf
[mysqld]

#innodb_force_recovery=6

skip-networking
character-set-server=utf8
init-connect="SET NAMES utf8"
query_cache_size=64M
long_query_time=5
slow_query_log=1
slow_query_log_file=/var/db/mysql/slow.log
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-external-locking
low-priority-updates
myisam-recover=backup,force


[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


при выводе
# ps ax | grep mysql | grep -v mysql

пусто

так как сервер боевой не очень хочется пробовать все подряд, прошу помощи гуру

Отредактированно WideAreaNetwork (15.12.2018 10:22:18)

Неактивен

 

#5 15.12.2018 18:14:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Не поднимается мускул.

В InnoDB в каждом файле есть уникальный идентификатор. Ошибка говорит о том, что у вас есть два файла с одним идентификатором. Это плохо, так быть не должно.

Могу предложить несколько вариантов решения (все с разной степенью  костыльности). В любом случае, перед тем, как делать то, что написано ниже, сделайте бэкап, чтобы можно было вернуться к изначальному состоянию.

Вариант «поочередное чтение».
1. Переименовываем mysql/innodb_index_stats.ibd в mysql/innodb_index_stats.ibd.bak
2. Стартуем MySQL (он должен ругнуться в лог, что не нашел файла, но стартануть)
3. Копируем nodeny/auth_log.ibd в текст (mysqldump nodeny auth_log > auth_log.sql)
4. Смотрим, создал ли MySQL табличку innodb_index_stats самостоятельно. Если да — ничего больше делать не нужно, если нет:
5. Убиваем табличку auth_log (DROP TABLE nodeny.auth_log)
6. Останавливаем MySQL
7. Восстанавливаем index_stats.ibd (так останется только одна таблица со space id2)
8. Восстанавливаем auth_log (у него получится новый space id, и должно быть всё хорошо: mysql nodeny < auth_log.sql)

Вариант «force recovery»
1. Добавляем в конфиг innodb_force_recovery = 1
2. Стартуем MySQL (это будет readonly-режим, но можно будет прочитать данные)
3. Бэкапим данные в файлик (mysqldump -A > dump.sql)
4. Убираем force recovery, пытаемся запустить (есть небольшой шанс, что MySQL сам восстановит id таблиц)
5. Если не запустился, убиваем содержимое каталога с данными
6. Инициализируем каталог с данными по новой (mysql_install_db)
7. Запускаем MySQL
8. Восстанавливаем данные из текста (mysql < dump.sql)

Неактивен

 

#6 16.12.2018 21:28:39

WideAreaNetwork
Участник
Зарегистрирован: 15.12.2018
Сообщений: 3

Re: Не поднимается мускул.

спс большое за ответ, но мог я долго пытаться , как оказалось через мускул извне ломанули сервак, и подменили шел, сейчас все восстановлено , но хочется просто все переустановить с нуля
ибо не знаю что могли еще там оставить после себя

Неактивен

 

#7 21.12.2018 09:05:57

WideAreaNetwork
Участник
Зарегистрирован: 15.12.2018
Сообщений: 3

Re: Не поднимается мускул.

подскажите пжл при ОС FreeBSD где именно можно посмотреть когда взломали MySQL?

Неактивен

 

#8 24.12.2018 12:41:00

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Не поднимается мускул.

Надо понимать, как взломали. Если MySQL смотрел наружу и читали через LOAD DATA INFILE / SELECT INTO OUTFILE, то, скорее всего, только по дате измененных файлов: по умолчанию MySQL не пишет лог всех запросов.

Ну и просто по логам авторизации смотрите — почти наверняка после этого они логинились по ssh.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson