web-dev-qa-db-ja.com

Mac OS XでMySQLサーバーを適切に停止する方法は?

MySQL Community Serverを次の指示に従ってインストールしました

http://dev.mysql.com/doc/refman/5.0/en/macosx-installation.html

スタートアップ項目とMySQLプリファレンスペインを使用します。

サーバーを停止できます

$ /usr/local/mysql/bin/mysqladmin -u root -p shutdown 
Enter password:
$ ps aux | grep mysqld
.... grep mysqld

これは正しい方法ですか?

システム環境設定-> MySQL-> MySQLサーバーの停止を使用してサーバーを停止しようとするたびにハングします。ドックからシステム設定を強制終了する必要があります。なぜハングアップするのか、どのように調べるのか?

3
qazwsx

免責事項:MacOSユーザーではありません

それは別の方法です。このシャットダウン方法は、MacOS、Linux、Windows、MySQLがサポートされている任意のプラットフォームで実行できます。

私は実際にはmysqladminメソッドを好みます...

Linuxでは、警告なしにmysql.sock(ソケットファイル)ファイルが表示されてすぐに消えてしまいました。 Linuxでmysqlをシャットダウンする標準的な方法はservice mysql stopです。ソケットファイルが消えると、mysqld_safeプログラムは、最初にソケットファイルを確認しないとシャットダウンできません。そのような標準的なシャットダウンはハングするだけです。

通常、TCP/IPを使用して接続します

/usr/local/mysql/bin/mysqladmin -u root -h127.0.0.1 -p shutdown  

このようにすると、ソケットファイルのチェックが省略されます。もちろん、root @ 127.0.0.1が存在することを確認する必要があります。次の行を実行して、そのユーザーを作成します。

SET SQL_LOG_BIN=0;
GRANT ALL PRIVILEGES ON *.* TO root@'127.0.0.1' IDENTIFIED BY 'whateverpassword';

警告DESC mysql.user;を実行すると、特権列の1つがShutdown_privであることがわかります。これは明らかに、mysqladminに接続するユーザーがシャットダウンを発行することを許可します。この権限を持つユーザーは、mysqlクライアントからシャットダウンを発行できません。 shutdown_priv = 'Y'のユーザーは、mysqladminからのみ実行できます。

2
RolandoMySQLDBA