エラー!MySQLサーバーのPIDファイルが見つかりませんでした!


3

マシンにmacOS Sierraを再インストールしました。Oracle MySQL Community Server 5.7.15(mysql-5.7.15-osx10.11)をインストールした後、コンソールからMySQLサーバーを停止しようとしました。「エラー!MySQLサーバーのPIDファイルが見つかりませんでした!」というエラーが返されました。

私は自分でいくつかの研究をしましたが、私の問題の解決策を見つけることができませんでした。

助言がありますか?


あなたはシエラを再インストールした後に ... MySQLをインストールするか、あなたはシエラを再インストールしても.... MySQLをインストールした後:これはMySQLのインストーラは、あなたが使用しました- OracleのMySQLコミュニティ5.7.15 PKGインストーラまたはMacPortsのパッケージまたは両方を?
クラノマス

クリーンなSierraインストールを行った後、組み込みのApacheを構成し、Oracle MySQL Community 5.7.15 pkgを使用してMySQLをインストールしました。私も自作を使用しています。
vasilisdmr

MySqlをどのように始めましたか?
マーク

設定メニューのボタンをクリックするだけです。
vasilisdmr

回答:


5

Preferences Pane / launchdを介してMySQLサーバーを起動および停止することと、sudo /usr/local/mysql/support-files/mysql.server start/stop実際には互換性がありません。

MySQLインストーラーで「Launchd Support」を選択すると、起動デーモンcom.oracle.oss.mysql.mysqldが作成され、MySQL設定ペインはlaunchdメカニズムを使用してmysqlを起動および停止します。「起動時にMySQLサーバーを自動的に起動する」を有効にすると、Macの起動後にmysqldが自動的に有効になります。

起動デーモンによって作成されたpidファイルの名前は、mysql-serverスクリプトによって作成され期待されるものと互換性がありません。

実行中に作成される起動デーモンのpidファイル名はmysql.local.pidです。スクリプトは、Macのホスト名、.localまたはコンピューター名に基づいた名前を期待します。

したがって、MySQLの設定ペイン/ launchctlまたはスクリプトを使用して、mysqldを開始および停止します。


ただし、ファイルcom.oracle.oss.mysql.mysqldを変更することにより、両方の方法にある程度互換性を持たせることができます

mysqlを停止した後、配列を置き換えます

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/mysql.local.err</string>
    <string>--pid-file=/usr/local/mysql/data/mysql.local.pid</string>
</array>

沿って

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/$name.err</string>
    <string>--pid-file=/usr/local/mysql/data/$name.pid</string>
</array>

$ name:HostName(例:host.example.com)、LocalHostName(例:host.local)、またはComputerName(例:host)のいずれか。おそらく最良の方法はホスト名を使用することです。hostnameでホスト名を取得するscutil --get HostNameか、で設定しsudo scutil --set HostName your_hostnameます。

また、起動デーモンを停止してmysqldを起動した後、でmysql-server startmysqlのデータディレクトリを確認することにより、実際に使用されているmysql-serverスクリプトpidの名前を取得することもできますsudo ls /usr/local/mysql/data。そこにある名前を使用して、plistのpid名を調整します。

編集するには、起動デーモンファイルをxmlに変換する必要がある場合があります。TextWranglerアプリは、すぐにそれをxmlファイルとして開きます。

後でlaunchctlでplistをリロードします。


これで、MySQLの設定ペインとmysql.serverスクリプトで開始および停止できるようになります。

「起動時にMySQLサーバーを自動的に起動する」を有効にした場合、launchd は数秒後に停止コマンドをオーバーライドし、mysqldを再度起動するため、plistを変更した後でもスクリプトでサーバーを停止できません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.