XAMPP-ошибка: завершение работы MySQL неожиданно

я переустановил XAMPP по какой-то причине, и MySQL не работает, давая следующую ошибку в консоли:

01:56:03  [mysql]   Error: MySQL shutdown unexpectedly.
01:56:03  [mysql]   This may be due to a blocked port, missing dependencies, 
01:56:03  [mysql]   improper privileges, a crash, or a shutdown by another method.
01:56:03  [mysql]   Check the "/xampp/mysql/data/mysql_error.log" file
01:56:03  [mysql]   and the Windows Event Viewer for more clues

при проверке " /xampp / mysql/data / mysql_error.log " файл, который я получаю:

130302  1:48:06  InnoDB: Waiting for the background threads to start
130302  1:48:07 InnoDB: 1.1.8 started; log sequence number 1600324627
130302  1:48:07 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130302  1:48:07 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130302  1:48:07 [Note] Server socket created on IP: '0.0.0.0'.
130302  1:51:12 [Note] Plugin 'FEDERATED' is disabled.
130302  1:51:12 InnoDB: The InnoDB memory heap is disabled
130302  1:51:12 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130302  1:51:12 InnoDB: Compressed tables use zlib 1.2.3
130302  1:51:12 InnoDB: Initializing buffer pool, size = 16.0M
130302  1:51:12 InnoDB: Completed initialization of buffer pool
130302  1:51:12 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130302  1:51:12  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...
130302  1:51:13  InnoDB: Waiting for the background threads to start
130302  1:51:14 InnoDB: 1.1.8 started; log sequence number 1600324627
130302  1:51:14 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130302  1:51:14 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130302  1:51:14 [Note] Server socket created on IP: '0.0.0.0'.
130302  1:56:01 [Note] Plugin 'FEDERATED' is disabled.
130302  1:56:01 InnoDB: The InnoDB memory heap is disabled
130302  1:56:01 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130302  1:56:01 InnoDB: Compressed tables use zlib 1.2.3
130302  1:56:01 InnoDB: Initializing buffer pool, size = 16.0M
130302  1:56:01 InnoDB: Completed initialization of buffer pool
130302  1:56:01 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130302  1:56:01  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...
130302  1:56:02  InnoDB: Waiting for the background threads to start
130302  1:56:03 InnoDB: 1.1.8 started; log sequence number 1600324627
130302  1:56:03 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130302  1:56:03 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130302  1:56:03 [Note] Server socket created on IP: '0.0.0.0'.

это всего лишь часть журнала, полный немного слишком большой.

помочь?

16 ответов


закройте skype и попробуйте, если skype opne

или

перейдите к установленному xampp/wamp, найдите httpd.conf. Откройте этот файл с помощью textpad / notepad, найдите Listen или 80 , обновление слушает порт 8081 и сохраните файл. Перезапустите xampp / wamp, запустите серверы.


или
выполните следующие действия в Skype enter image description here


в моем случае, я сделал две вещи:

  1. двигался xampp/mysql/backup файлы xampp/mysql/data
  2. запустите XAMPP как администратор

это сработало для меня:)


вы должны:

  • закройте xampp
  • перейдите в папку, где вы ее установили, если в (c:) может быть что-то вроде C:\xampp\, доступ к папке C:\xampp\mysql\data
  • удалить файл ibdata1
  • снова запускает XAMPP.

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


лучшим решением этой проблемы является просто открыть файл MySQL configuration directive мой.ini присутствует внутри папки C:\xampp\mysql\bin и изменить информацию, связанную с портами, как правило, некоторые программы занимают порт нет. 3306 в результате этого он перестает работать, Теперь вы выполните два шага, чтобы заставить его работать.

enter code here

    Step-1. Search for ['client'],  you can see some thing like this

            [client] 
            # password       = your_password 
            port            = 3306
            socket          = "C:/xampp/mysql/mysql.sock"
 Now in the port section remove 3306 and add port = 3306 > 3307 as shown   below.

            [client] 
            # password       = your_password 
            port            = 3306 > 3307
            socket          = "C:/xampp/mysql/mysql.sock"


    Step -2. Similarly Search for  ['mysqld'], you can see something like this 

            [mysqld]
            port= 3306
            socket = "C:/xampp/mysql/mysql.sock"
            basedir = "C:/xampp/mysql" 
            tmpdir = "C:/xampp/tmp" 
            datadir = "C:/xampp/mysql/data"
            pid_file = "mysql.pid"
            # enable-named-pipe
            key_buffer = 16M
            max_allowed_packet = 1M
            sort_buffer_size = 512K
            net_buffer_length = 8K
            read_buffer_size = 256K
            read_rnd_buffer_size = 512K
            myisam_sort_buffer_size = 8M
            log_error = "mysql_error.log"


            Now here change the port number 3306 to 3307 and add a line "innodb_force_recovery = 1" exactly as shown below.


            [mysqld]
            port= 3307
            socket = "C:/xampp/mysql/mysql.sock"
            basedir = "C:/xampp/mysql" 
            tmpdir = "C:/xampp/tmp" 
            datadir = "C:/xampp/mysql/data"
            pid_file = "mysql.pid"
            # enable-named-pipe
            key_buffer = 16M
            max_allowed_packet = 1M
            sort_buffer_size = 512K
            net_buffer_length = 8K
            read_buffer_size = 256K
            read_rnd_buffer_size = 512K
            myisam_sort_buffer_size = 8M
            log_error = "mysql_error.log"
            innodb_force_recovery = 1

вот так, перезапустите службу mysql, она будет работать наверняка.


Я бы просто попытался переустановить XAMPP.


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


просто запустите xammp как администратор, он работает


для тех, кто искал и нажимал на эту ссылку, я решил ее, просто ища MySQL notifier и остановив mysql от запуска там, затем снова запустите mysql в xampp, и он запускается. почему это работает ? я не эксперт, но я думаю, что это легко : порт был взят уже MySQL notifier, поэтому пришлось остановить его там и запустить его здесь.


Я новичок в XAMPP, но я считаю, что комбинация этих предложений работает лучше всего (по крайней мере, в Windows 8.1 с последней версией XAMPP. Обратите внимание, что на компьютере, на котором я тестировал это, также был skype).

первый вход в skype и перейдите к " Tools

далее на панели управления XAMPP нажмите " config

кроме того, вам нужно будет перейти к XAMPP

$cfg ['Servers'] [$i] ['host'] = '127.0.0.1';

вам нужно будет добавить "3307" следующим образом:

$cfg ['Servers'] [$i] ['host'] = '127.0.0.1:3307';

теперь откройте браузер, и вы увидите страницу xampp при вводе "локальный хост." Кроме того, если вы впервые используете xampp, вы можете увидеть предупреждение об отсутствии пароля (выделено розовым цветом) на странице localhost/phpmyadmin/. Это легко исправить, Перейдя на вкладку " Учетные записи пользователей "в phpmyadmin, нажав" редактировать привилегии " и введя пароль. Не забудьте сохранить хэшированную версию любого и всех паролей, которые вы создаете, поскольку мы будем использовать это дальше! - Я открыл блокнот и сохранил (и пронумеровал) их. Обратите внимание, что phpMyadmin уведомит вас о том, когда вы меняете пароль для текущего сеанса (это будет отображаться в верхней части страницы phpMyadmin и очень важно, так как вам понадобится конкретная хэшированная версия вашего пароля).

Далее вам нужно будет перейти к следующему местоположению " xampp

и, это должно сделать это.


в моем случае : Я только что заменил

....xampp/mysql/backup files 

на

**xampp/mysql/data**

это сработало для меня.


Если Apache работает без каких-либо проблем , и u найти некоторые блокировки по параметрам безопасности системы , просто разрешить его вместо блокировки или закрытия диалогового окна. И измените номер порта для MySQL на 3607, как это было до 3606 . У меня получилось .


Если вы inistalled mysql независимо вы можете остановить службу mysql при запуске ни один из этих ответов не работал для меня эта работа для меня


Это сработало для меня,

  1. выйти из XAMPP
  2. вырезать все файлы в C:\xampp\mysql\backup
  3. вставить и заменить файлы в C:\xampp\mysql\data
  4. Запуск от имени администратора XAMPP

Ну, во-первых, я знаю, что это поздно, поэтому я не знаю, будет ли кто-нибудь его голосовать, но о, хорошо, все в порядке,, во-вторых, удаление xampp может не принести вам никакой пользы, потому что процесс с использованием порта 3306 (ПОРТ По умолчанию Mysql) все еще будет работать где-то в вашей системе. может быть skype, но может и не skype.

Так что лучшим способом было бы узнать, какой процесс использует порт 3306, а затем завершить процесс.

Итак, чтобы выяснить, какой процесс использует порт 3306, откройте командную строку и введите

netstat -n -o -a

вы получите экран, как этого.

затем найдите адрес с номером порта 3306 и узнайте PID, соответствующий этому.

затем просто откройте командную строку в качестве администратора и введите

taskkill /F /PID 1234

замените 1234 на соответствующий PID. Затем вы можете попробовать запустить MySQL и он будет работать.


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

вы можете просто использовать следующий пакетный скрипт для автоматического завершения процесса и наслаждаться:)

@echo off
setlocal enableextensions
set "port=3306"
for /f "tokens=1,4,5" %%a in (
    'netstat -aon ^| findstr /r /c:"[TU][CD]P[^[]*\[::\]:%port%"'
) do if "%%a"=="UDP" (taskkill /F /PID %%b) else (taskkill /f /PID %%c)
endlocal
pause

сохранить как угодно.bat и запускайте его каждый раз, когда вы хотите использовать mysql. :)



истинный путь-это перенастроить приложение.с настройкой в MySQL .вы можете снова открыть настройки и изменить порт с 3306 на 3307.

enter image description here