Помилка запуску сервера 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

подивіться, чи це допомагає: serverfault.com/questions/104014/…
Rinzwind

1
Який вихід ls /var/lib/mysql/ib_logfile*?
Jobin

ls: не вдається отримати доступ / var / lib / mysql / ib_logfile *: Немає такого файлу чи каталогу
ananth

1
Чи ваш каталог / var / lib / mysql написаний для mysql?
Джос

1
Я новачок Linux ... Я змінив дозволи / var / lib / mysql, використовуючи chmod 777 . Чи можете ви порадити мені, як перевірити, чи це не правильний шлях?
анант

Відповіді:


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

(Джерело)


1
Я запускав згадані вами команди..При запуску служби sudo mysql перезапуск, він дав повідомлення про зупинку: невідомий примірник і запит оболонки не з’явився (перезапуск все ще працює з останніх 50 хвилин)
анант

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 / mysqld: Завершення роботи завершено
ananth

Ні. Я не перезавантажив службу sudo mysql.
анант

Ви можете спробувати зробити sudo service mysql start?
Jobin

Чи слід вбити процес запуску mysql, який працює? Чи це спричинить якісь проблеми ??
анант

9

Це вирішило мою проблему:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
після застосування цих кроків мою базу даних видаляють. Тепер що я буду робити ??
Аміт Ядав

7

Я вирішив проблему наступним чином:

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

В іншому контексті я зіткнувся з цим, оскільки не вдалося запустити демон mysql . Тож почніть демон із команди - mysqld startі тоді спробуйте запустити службу.


2

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

default-table-type = myisam

Після оновлення mysql, здається, це змушує mysql не запускатися. Я змінив це на:

default-storage-engine = myisam

і зараз все працює добре.


1

Збільшення доступної оперативної пам’яті за допомогою додавання нового простору Swap також може допомогти. Кроки тут

Переконайтеся, що ви створюєте / заміняєте файл розміром менше, ніж наявний простір, показаний на

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 (Ex S10mysql), а не K AS K10mysql.

Пояснення: K префікс завантажує з зупинкою, видом служби вбивства; і префікс S починається з параметра "пуск".

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#

Справа закрита. Я сподіваюся, що це допомагає.


0

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

;)

"З великою силою приходить велика відповідальність"


0

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

Я вирішив це, змінивши max_allowed_packetна 1M.


0

Наступна команда вирішить мою проблему, і MySQL може запуститися після неї (може бути корисним у деяких випадках)

chown -R mysql: /var/lib/mysql
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.