0

root として Linux ボックスにログインし、コマンド ラインで mysql に接続した場合、インタラクティブ プロンプトで「\s」と入力すると、クライアントの文字セットと接続の文字セットが utf8 であることがわかります。「su - bob」で mysql を終了し、(同じ mysql ユーザーとして) mysql に接続し、対話型プロンプトで「\s」と入力すると、クライアントの文字セットと接続の文字セットが latin1 であることがわかります。

関連する可能性のあるボブの環境とのルートの環境の違いを探し、ボブとしてログインしたときに、それらをルートユーザーの場合と同じ値に設定し、mysqlに再度接続しましたが、まだlatin1が表示されます。

ここで違いを引き起こしている要因は何かを誰かが説明できますか?

どうもありがとう、ポール

4

1 に答える 1

0

mysql クライアントは、LANG または LC_ALL ローカル環境変数を使用して、クライアントと接続文字セットを設定します。これらの変数が定義されていない場合、デフォルトの文字セットが使用されますが、これは latin1 だと思います。そのため、root ユーザーと bob ユーザーがこれらの環境変数の値が異なる場合、接続とクライアントの文字セットは、それぞれの OS ユーザーから接続するときに異なります。

于 2012-09-07T10:24:08.607 に答える