2011-12-15 4 views
1

MySQLサーバーインスタンスを保持するWindowsサービスの既定の名前は「MySQL」です。しかし、MySQL 5.5では、インストール後に任意の名前を指定することができます。今はMySQLのWindowsサービスの名前を知る必要がありますが、私のアプリケーションがこの名前を探すべき場所を理解できません。私はこの名前を特別なものにすることを試みていました。しかし、この珍しい名前は、Windowsレジストリのサービス一覧にのみあった。 MySQLサーバーのmy.ini、my-huge.ini、およびその他のiniファイルには、Windowsサービスの名前に関する情報は含まれていません。 MySQLがこの名前をどこに格納しているのですか? Windowsのバージョン:7 X86/X64、MySQLのバージョン:5.5。 ありがとうございます。MySqlサーバーインスタンスのWindowsサービス名を見つけよう

答えて

0

MySQLはこの名前をどこにも保存する必要はありません。サーバープロセスはWindowsサービスコントローラーによって起動され、クライアントはネットワーク経由でサーバーと通信するため、名前を知る必要はありません。発見したように、これはレジストリのサービスリストに表示される唯一の場所です。 Linuxでは、デーモンプロセスにはWindowsサービスと同じように特別な名前はないと考えてください。サービス名はWindows上で実行される結果であり、MySQLはそのことを知らず、気にもしません。

+1

サービス名が最初に指定された後に「MySQLインスタンス設定ウィザード」を起動すると、ウィザードの手順の1つでWindowsサービスの名前を見ることができます。 MySQL Workbenchは、この名前を「Create New Server Instance Profile」フォームでも知っています。それはどこかに保存されていますが、それを見つけるのは容易ではありません。 – Shoar

3

MySQLの新機能、私は同じ質問に遭遇しました。私はこれを回避するためにやったことはiniファイル内のサービス名と同じにインスタンスshared_memory_base_nameに設定されている:これは、システム変数@@ shared_memory_base_nameを経由して、それが利用可能

# shared_memory 
shared_memory_base_name=MySQLServiceName 

します。私は実際に共有メモリ接続を有効にしないで、変数を設定するだけです。

私はLinuxで試していませんが、おそらく@@ソケットシステム変数を設定すると同じものを提供することができます。

私はこれが今あなたを助けるために少し遅れて、誰かがそれがレジストリに保存されていること便利...

+0

あなたが答えを知っていないならばあなたの意見をcoomentに聞かせてください。 –

1

を見つけることが実現しています。 MySQLインスタンスコンフィグレーションウィザードは、名前と対応するサービス.exeへのパスを含むレジストリを読み込みます。

しかし、これらのレジストリエントリをプログラムで見つける方法は正確にはわかりません。

PS:エントリがここで見つけることができる可能性があります。

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL[xy]

(XYのようなバージョンである:5.7 57)

serviceNameをキー "表示名" にここに格納されていると"ImagePath"の.exeへのパス。

注:これらのパスには、my.iniファイルへのパスなどの開始パラメータも含まれます。