24

何らかの理由で 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'.

これはログの一部にすぎません。完全なログは少し大きすぎます。

ヘルプ?

4

22 に答える 22

6

スカイプが開いている場合は、スカイプを終了して試してください。

また

インストールされている xampp/wamp に移動し、httpd.conf を検索します。テキストパッド/メモ帳を使用してそのファイルを開き、 Listen または 80 を検索して、リッスン ポートを 8081 に更新し、ファイルを保存します。xampp/wamp を再起動し、サーバーを起動します。


または
Skypeで以下の手順に従ってください ここに画像の説明を入力

于 2013-05-03T04:53:09.857 に答える
1

コンピューターに以前にインストールされたMySQLサーバーがある可能性があります。それをアンインストールして、XAMPPでMySQLを起動してください。これで解決しました

于 2014-07-24T12:56:32.067 に答える
1

絶対です:

  • xamppを閉じる
  • (c:) が C:\xampp\ のようなものである場合は、インストールしたフォルダーに移動し、フォルダーC:\xampp\mysql\dataにアクセスします。
  • ファイルibdata1を削除します
  • XAMPP を再起動します。
于 2015-02-28T20:21:28.967 に答える
1

これを解決するには、

XAMPP フォルダーに移動し、

XAMPP -> mysql -> bin -> "my.ini"

構成ファイルを開いた後、空きポートであるため、いくつかの場所で置き換えmy.iniます。330633083308

XAMPP -> php -> "php.ini"

3306ポートを に変更している「my.ini」ファイルで行ったのと同じことを行います3308

次に、XAMPP サーバーを再起動します。

それは正常に動作します。

于 2020-08-21T11:43:17.837 に答える
0

私の場合:交換したばかりです

....xampp/mysql/backup files 

の中へ

**xampp/mysql/data**

それは私のために働いた。

于 2016-12-20T06:49:59.090 に答える
0

このリンクを検索して押した人は、mysql notifier を検索して mysql の実行を停止するだけで解決しました。次に、xampp で mysql を再度実行すると実行されます。なぜこれが機能するのですか?私は専門家ではありませんが、簡単だと思います。ポートは既に mysql 通知機能によって取得されているため、そこで停止してここで実行する必要がありました。

于 2016-06-23T19:34:26.220 に答える
0

XAMPPを再インストールしてみます。

于 2013-03-02T02:06:02.367 に答える
0

この問題の最善の解決策は、 C:\xampp\mysql\binフォルダー内にあるmysql 構成ディレクティブ ファイルmy.iniを開き、ポートに関連する情報を変更することです。通常、一部のプログラムはポート番号を占有します。3306 が機能しなくなった結果、次の 2 つの手順に従って機能させます。

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 サービスを再起動してください。確実に機能します。

于 2015-08-12T08:08:26.843 に答える
0

私はXAMPPを初めて使用しますが、これらの提案の組み合わせが最適に機能することがわかりました(少なくともXAMPPの最新バージョンを搭載したWindows 8.1では。これをテストしたコンピューターにはskypeもあったことに注意してください)。

最初にスカイプにログオンし、「ツール < オプション < 詳細設定 < 接続」に移動します。次に、「追加の着信接続にはポート 80 と 443 を使用する」というボックスをオンにします。Skype を保存して閉じ、終了します。

次に、XAMPP コントロール パネルで、[config < my.ini] をクリックし、19 行目と 27 行目 (ポート = 3306 にする必要があります) を「3306」から「3307」に変更します。

また、xampp < phpMyAdmin < config.inc に移動し、27 行目を次のように変更する必要があります。

$cfg['サーバー'][$i]['ホスト'] = '127.0.0.1';

次のように「3307」を追加する必要があります。

$cfg['サーバー'][$i]['ホスト'] = '127.0.0.1:3307';

ここで、ブラウザを開いて、「localhost」と入力すると xampp ページが表示されるはずです。さらに、xampp を初めて使用する場合は、localhost/phpmyadmin/ ページにパスワードがないことを示す警告 (ピンク色で強調表示) が表示される場合があります。これは、phpmyadmin の [ユーザー アカウント] タブに移動し、[権限の編集] をクリックしてパスワードを入力することで簡単に修正できます。次に使用するため、作成したすべてのパスワードのハッシュ バージョンを忘れずに保存してください。-メモ帳を開いて保存 (および番号付け) しました。phpMyadmin は、現在のセッションのパスワードを変更するときに通知することに注意してください (これは phpMyadmin ページの上部に表示され、特定のハッシュ バージョンのパスワードが必要になるため、非常に重要です)。

次に、コンピューター上の次の場所 "xampp < phpMyAdmin < config.inc" に移動し、テキスト エディターでファイルを開いて編集する必要があります。パスワードの一重引用符の間にパスワードのハッシュ バージョンを挿入し、"AllowNoPassword" を true から false に変更します。

そして、それはそれをするべきです。

于 2016-11-17T23:06:14.693 に答える
0

私が見つけた理由の1つは(このサイトで同様の問題に関する他の回答に加えて言及されていません)、Windowsのタスクマネージャーに移動し、すでに実行されているmysqldを停止して、mysqlサーバーの起動を妨げたことです。

于 2013-12-06T12:16:16.487 に答える
0

まず第一に、私はそれが遅いことを知っているので、誰かがそれを支持するかどうかはわかりませんが、大丈夫です.2番目に、xamppをアンインストールしても、ポート3306(Mysqlのデフォルトポート)を使用するプロセスは引き続きシステムのどこかで実行されています。スカイプかもしれませんが、スカイプではないかもしれません。

そのため、どのプロセスがポート 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

それをanything.batとして保存し、mysqlを使用するたびに実行してください。:)


于 2017-11-06T15:40:07.100 に答える
-3

xammp を管理者として実行するだけで動作します

于 2015-10-14T13:13:25.773 に答える