ストーリーの背景:
ずっと前 (2017.6.5、記事には適時性があり、特に使用されるツールは頻繁に更新されます。今回のことを覚えておいてください。価値がなくなった場合は、すべて公式の規定に従うものとします)ツールのドキュメント) )、使用するために mysql バージョンをダウンロードしました。このマシンは win10 の 64 ビット システムです。手順は大きく分けて:
1. ダウンロード:公式サイトを参照()、ダウンロードはシステムバージョンに応じて行われます
2. 初期化:コマンドライン(cmd)で解凍ディレクトリbinフォルダーに入ります(解凍する必要があります)。ダウンロード後ですよね?私も長い間忘れていました。ダウンロードにはデータフォルダーとiniファイルがありません) 初期化方法は2つあります。 1 つは安全でない初期化と呼ばれるもので、「mysqld --initialize」と入力します。この初期化では、root ユーザーはパスワードなしで残ります (パスワードがないため安全ではありません)。もう 1 つは、いわゆる「安全な初期化」です。「mysqld --initialize」と入力します。 -insecure、パスワードを生成します root ユーザー、パスワードは、生成後に表示されるログ ファイル、初期化後に生成されるデータ ファイルで確認できます
3. サービスを開始します: 次のように入力します: net start mysql ( service: Enter: net stop mysql), net が内部コマンドではないというプロンプトが表示される場合は、net がインストールされていないか、環境変数が設定されていない可能性がありますので、確認してください
4. 基本的には次のようになります。これ以外にも、mysql コマンド リストを確認できます。
次に、文字セットの設定の問題について話しましょう。
原因:
昨日、mysql コマンドラインでデータを表示するには抽象的すぎたので、最初に mysql (ビジュアル インターフェイス) 用の Navicat をダウンロードしたところ、見た目がはるかに良くなりました。図に示すように:
その後、テーブルにデータを挿入すると、「文字列値が正しくありません」というエラーが報告されます。これは、他のエンコーディングでは保存できないためです。一部の特殊文字 詳細 Baidu を使用できます。
変更後:
文字セットを変更するには、まず mysql を入力します: mysql -uroot (パスワードなしのものが初期化に選択されているため、ユーザーログイン)、次のように 'char%' のような変数を表示します (文字エンコーディングを確認してください)。画像内:
コマンドラインに例えば setcharacter_set_server=utf8mb4 と入力して文字セットを変更できますが、それはその時点でのみ有効で、サービスが再起動されるとデフォルト値が復元されます。次に、他の方法を試してください。インターネット上にはさまざまな意見があり、それらは曖昧で真実と偽りを区別するのが困難です。それで、公式ウェブサイトに行って見てみました(公式ウェブサイトも非常にわかりにくく、参考になる例がありません。目の見えない人に白は白で、私はその目の見えない人です、と言っているようなものです)。ドキュメント内の変数を表示するコマンドがあること: mysqld --verbose -- help、表示される変数はオプション ファイルで設定でき、サービスが開始されるたびに、オプション ファイルに従って自動的に設定されます。すると、ここに文が表示されます:
デフォルトオプションは、指定された順序で次のファイルから読み取られます
私は、オプションファイルが存在する可能性がある場所にあるはずだと思います、つまり、新しく作成されたオプションファイルは、にちなんで名付けられる必要があります。表示される名前を付けて、配置すべき場所に配置します。図に示すように:
新しい my.ini ファイルを作成し、D: mysql の下に配置します。これは、上に示したように、たまたま表示される場所の 1 つです。 my.ini の内容は次のとおりです:
ここでは、原因となるcharacter_set_serverのみを取得します。当然、関連する文字セットの設定は統一されている必要があります。そうしないと文字化けする可能性があります。 Baidu にアクセスしてそれぞれを確認できます 文字セットの意味は何ですか?
その後、mysql サービスを閉じて、設定を開始します (mysqld --install と入力します):
1. 管理者以外が cmd を開いて mysqld --install を入力すると、コマンドが拒否されたことを示す次のメッセージが報告されます。
2. 代わりに管理者で開くと、サービスがすでに存在していることが表示されます (その後、最初に削除します):
3. mysql サービスにクエリを実行します: sc query mysql (次の場所にもあります)コントロールパネル-管理ツール-サービス) 、またはサービスを直接検索します)
4. 削除します: (コントロールパネル-管理ツール-サービスでアンインストールするか、サービスを直接検索することもできます)
5. もちろん、最初に削除したとしても、再インストールする前に mysql を停止してください。そうでないと、次のメッセージが表示されます:
6. 今回はコントロールパネルで停止しましたが、以前にアンインストールして停止したら消えてしまったので(コマンドライン:net stop mysql)、再実行して無事mysqlサービスが起動しました。同じ時間:
7. 再起動が成功しました。変更が成功したかどうかを確認します。
8. その後、my.ini を数回変更してみました。 mysql サービスを再起動すると、毎回 my.ini に従って変更されます。つまり、今後満足できない場合は、最初からやり直す必要はありません。 my.ini を変更してサービスを再起動するだけです。写真に示すように:
もう一度変更します:
設定は以上です、さようなら!
以上がmysql5.7.18 文字セット設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。