したがって、これは非常に複雑な問題です。
あなたが説明したこと(非常に詳細)から、この問題にはまだ多くの原因が考えられます。
質問: だからここにあなたのために要約されたいくつかの質問があります(私の経験から):
MySQL not running
最初の起動時に発生しましたか(xampp start / xampp startmysql)?- Linuxにxamppをインストールした後、MySQL構成(デフォルトetc / my.cnf)をカスタマイズしましたか?
- カスタマイズされている場合 データベースディレクトリを別の場所(デフォルトは/ opt / lampp / var / mysql)にカスタマイズしましたか?
- カスタマイズされていない場合 あなたがmysqlコマンドラインにアクセスできると述べたように、データベースをSQLしようとしましたか、それともデータベースにアクセスできなかった場合(つまり、mysqldという名前のmysqlサーバーが正しく起動しなかった場合)?
- mysqlデータベース(デフォルトのbin / mysql_install_db)を個人的に初期化/インストールしましたか?わかりました。上記の質問は、基本的なトラブルシューティングのアイデアを提供するはずです。
解決策:
1。エラーログの問題
したがって、これは最も単純な問題であるはずであり、エラーの原因をより適切に特定するのに役立つ可能性があります。
チェック
a)MySQL構成(my.cnf)で、実行中のユーザーは何ですか?これは[mysqld]user=...(デフォルトはmysql)のパラメーターである必要があり、構成がmysql
に設定されていると想定しています。
b)ユーザーtryterminalコマンドid -u mysql
を実行するためのアカウントがありますか 、ID番号を返す場合はアカウントが存在し、そうでない場合はno such user
と表示されます。 。 mysqlサーバーを実行し、エラーログを書き込むには、このユーザーが必要です(ターミナルレコードの2番目の部分を確認すると、アカウントが存在する必要があります)
c)MySQL構成(my.cnf)のエラーログの場所を確認します。パラメーターlog-error =...として[mysqld]の下にある必要があります。これが書き込まれていない場合は、追加します([mysqld]の下にある必要があります)。
d)ログのフルパスのすべてのディレクトリを確認します(例:/var/log/mysql/error.log)
- /varには
read
が必要です およびexecute
mysqlユーザーの権限(少なくとも****** r-x)は、ファイルの作成(実行)権限を渡します - / var/logには
read
が必要です およびexecute
mysqlユーザーの権限(少なくとも****** r-x)は、ファイルの作成(実行)権限を渡します - / var / log/mysqlには
read
が必要です 、write
およびexecute
mysqlユーザー(****** rwx)の作成および書き込み権限
ここでerror.logファイルを作成できるように、それでも機能しない場合は、所有者をmysql、グループをmysql、権限を660にして手動で作成してみてください。
2。 MySQLサーバーの実行ステータス
これを確認する方法はいくつかあります
a)mysql.server(デフォルトのbin / mysql.server)を使用してmysql.server status
を実行します 指図。 MySQLサーバーが稼働している場合は、SUCCESSと表示されます。 MariaDBが実行されています。
b)top
を使用する サービスが実行されているかどうかを確認するコマンド、またはtop | grep "mysqld"
。 mysqld
およびmysqld_safe
その中にあるべきです。
c)ターミナルレコード4で行ったのと同じようにmysqlコマンドラインにログインし(これは一部動作します)、コマンドSHOW DATABASES;
を実行します。 これも機能するはずです。
3。データベースの場所をカスタマイズすると、Xamppmysqlが実行されていない状態になります MySQLサーバーが正しく実行されていることを確認したので、これははるかに深刻な問題です。
やった
[[email protected] ~]# /opt/lampp/xampp status
Version: XAMPP for Linux 7.4.1
Apache is running.
MySQL is not running.
ProFTPD is running.
[[email protected] ~]# /opt/lampp/bin/mysql.server status
SUCCESS! MariaDB running (xxxx)
したがって、これはxamppがサービスステータスを誤ってフェッチしていることを示しています(別の投稿 MySQLデータベースはターミナルで起動しますが、XAMPPでは起動しません )
xamppがどのように機能するかを詳細に追跡できますが、/opt/lampp/xampp
スクリプトファイル、/opt/lampp/share/xampp/status
が見つかりました および/opt/lampp/share/statusraw
さらに詳しく説明します(/opt/lampp/share/xampp/status
の両方) および/opt/lampp/share/statusraw
ファイル)、
/opt/lampp/var/mysql/` /bin/hostname`.pid mysqld
私のデータベースはローカライズされたディレクトリにカスタマイズされているため、これはpidファイルが/opt/lampp/var/mysql
にないことを意味します 、このステータスは常に誤って返されます。
したがって、これを自分のデータベースpidの場所に変更すると、問題が解決しました。