Не удалось запустить сервер MySQL

28

Я работаю на сервере Ubuntu. Когда я попытался войти в MySQL (который работал), я получил следующую ошибку

ERROR 2002 (HY000): Can't connect to local MySQL server through socket         '/var/run/mysqld/mysqld.sock' (2)

Но файл mysqld.sock не существует внутри /var/run/mysqldпапки. При выполнении ps aux | grep mysqlкоманды я понял, что сервер MySQL не работает.

Затем я попытался перезапустить сервер MySQL, используя

service mysql start
service mysql restart
/etc/init.d/mysql start

Но процесс запуска не удался во всех 3 случаях. /var/log/mysql/mysql.logи /var/log/mysql/mysql.errфайлы пусты.

Но /var/log/error.logпоказывает следующую информацию:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete
Ananth
источник
Посмотрите, поможет ли это: serverfault.com/questions/104014/…
Rinzwind,
1
Какой выход ls /var/lib/mysql/ib_logfile*?
Jobin
не лс не может получить доступ / вар / Lib / MySQL / ib_logfile *: Нет такого файла или каталога
Ananth
1
Ваш каталог / var / lib / mysql доступен для записи для mysql?
Йос
1
Я новичок в Linux. Я изменил права доступа к / var / lib / mysql с помощью chmod 777 . Можете ли вы предложить мне, как проверить, если это не правильный путь?
Ananth

Ответы:

28

Откройте терминал ( Ctrl+ Alt+ t) и выполните следующие действия:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

и закомментируйте строку record_buffer=64Mв /etc/mysql/my.cnf [1]

и затем перезапустите msyql, используя:

sudo service mysql restart

(Источник)

Jobin
источник
1
Я побежал команды, mentioned..On работает перезагрузку MySQL Sudo службы, он дал сообщение остановки: Неизвестный экземпляр и приглашение оболочки не появляется (перезагрузка все еще работает от последних 50 минут)
Ananth
1
Кроме того, теперь журнал ошибок показывает: -140425 15:09:11 InnoDB: самый высокий поддерживаемый формат файла - Barracuda. 140425 15:09:12 InnoDB: ожидание начала фоновых потоков 140425 15:09:13 InnoDB: 5.5.37 запущено; порядковый номер журнала 940942258188 140425 15:09:13 [ОШИБКА] / usr / sbin / mysqld: неизвестная переменная 'record_buffer = 64M' 140425 15:09:13 [ОШИБКА] Прерывание 140425 15:09:13 InnoDB: начало отключения ... 140425 15:09:14 InnoDB: завершение работы завершено; порядковый номер журнала 940942258188 140425 15:09:14 [Примечание] / USR / SBIN / туздЫ: Выключение завершена
Ananth
Нет .. я сделал sudo service mysql restart.
Ananth
Можешь попробовать sudo service mysql start?
Jobin
Должен ли я завершить процесс перезапуска mysql, который работает? Это вызовет какие-либо проблемы?
Ananth
9

Это решило мою проблему:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

user520064
источник
1
после применения этих шагов моя база данных была удалена. Теперь что я буду делать ??
Амит Ядав
7

Я решил проблему следующим образом:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

В другом контексте я столкнулся с этим, потому что демон mysql не запустился. Итак, запустите демон с помощью команды - mysqld startи затем попытайтесь запустить службу.

Sudheesh.MS
источник
2

У меня было такое же сообщение об ошибке и та же пустота в файлах журнала. В моем конфигурационном файле (my.cnf) я указал, что хочу использовать таблицы myisam, добавив эту строку в раздел [mysqld]:

default-table-type = myisam

После обновления mysql кажется, что mysql не запускается. Я изменил это на:

default-storage-engine = myisam

и теперь все работает отлично.

Ларс Олав Твейто
источник
1

Увеличение доступной оперативной памяти за счет добавления нового пространства подкачки также может помочь. Шаги здесь

Убедитесь, что вы создали / файл подкачки размером меньше доступного пространства, показанного

df -h

Например для меня вывод df-h был:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Итак, я создал с помощью 2 G

sudo fallocate -l 2G /swapfile

А потом просто запусти сервис

sudo /etc/init.d/mysql restart

Надеюсь это поможет. Всего наилучшего.

Вивек
источник
1

Мое решение:

Проверьте, что во всех /etc/rc1.d ... /etc/rc5.d сценарий mysql начинается с S (например, S10mysql), а не с K AS K10mysql.

Пояснение: Префикс K загружается с остановом, вид службы уничтожения; и префикс S начинается с параметра start.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5
Серхио Абреу
источник
1

В моем случае это была космическая проблема. Проверьте, достаточно ли у вас места.

из чего /var/log/mysql/error.logя получил несколько подсказок из двух строк:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Я мог видеть, что это космическая проблема.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

Отсюда я увидел, что на виртуальном сервере недостаточно места /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. Я подумал о переносе или увеличении виртуального диска, но сначала решил удалить ненужные файлы.

Итак, пришлось очистить кеш и файлы, которые не были нужны:

#apt-get clean
#apt-get -f autoremove

Затем не забудьте удалить поврежденные файлы журнала mysql после этого. Они будут сгенерированы снова, когда вы перезапустите MySQL

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Проверьте службу сервера MySQL и она, вероятно, запущена и работает

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Дело закрыто. Я надеюсь, что это помогает.

sukupandachu
источник
0

Удалите файл /var/lib/mysql/.run-mysql_upgrade, и он должен запуститься

;)

"С большой властью приходит большая ответственность"

Адриан Пуле
источник
0

У меня была эта проблема , когда я установил max_allowed_packet = 0.5Mв /etc/mysql/my.cnf.

Я решил это, изменив max_allowed_packetна 1M.

ratskin
источник
0

Следующая команда решает мою проблему, и после нее может начаться mysql (в некоторых случаях это может быть полезно)

chown -R mysql: /var/lib/mysql
Юсеф
источник