MySql5.7.18 の文字セット構成の詳細なグラフィック説明

MySql5.7.18 の文字セット構成の詳細なグラフィック説明

背景:

かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新されています。このことを覚えておいてください。価値がなくなった場合は、すべてツールの公式ドキュメントの対象になります)、MySQLのバージョンをダウンロードして試してみましたが、最新のものはたまたまMySQL5.7.18で、ローカルマシンはwin10、64ビットシステムでした。手順は大まかに次のように分けられます。

1. ダウンロード: 公式ウェブサイト (https://www.mysql.com) を参照して、対応するシステム バージョンをダウンロードします。

2. 初期化: コマンドライン (cmd) を使用して、解凍したディレクトリの bin フォルダに入ります (ダウンロード後に解凍するべきでしょうか? 久々に忘れていました。また、ダウンロード後にデータ フォルダと ini ファイルはありません)。初期化には 2 つの方法があります。 1 つは安全でない初期化と呼ばれ、次のように入力します: mysqld --initialize、初期化により root ユーザーにパスワードがなくなります (パスワードがないので安全ではありません)。もう 1 つはいわゆる安全な初期化で、次のように入力します: mysqld --initialize-insecure、パスワード付きの root ユーザーを生成します。パスワードは、生成後に表示されるログ ファイル、初期化後に生成されたデータ ファイルで確認できます。

3. サービスを開始します: net start mysql と入力します (サービスを停止するには、net stop mysql と入力します)。net が内部コマンドではないというメッセージが表示される場合は、net がインストールされていないか、環境変数が設定されていない可能性があります。確認してください。

4. 基本的にはこれで完了です。その他の情報については、完全な MySQL コマンドを参照してください。

次に、文字セットの設定の問題についてお話ししましょう。

原因:

ちょうど昨日、MySQL のコマンドラインでデータを表示するには抽象的すぎると感じたので、見た目がはるかに優れている Navicat for MySQL (ビジュアル インターフェイス) をダウンロードしました。図に示すように:

その後、テーブルにデータを挿入すると、「文字列値が正しくありません」というエラー メッセージが報告されます。Baidu で検索したところ、文字セットを utf8mb4 に変更する必要があるとのことでした。これは、他のエンコーディングでは一部の特殊文字を保存できないためです。詳細については、Baidu で検索してください。

以下を実行します:

文字セットを変更するには、まず mysql と入力し、mysql -uroot (初期化でパスワードなしのものが選択されたため、ユーザー ログイン) を実行し、図に示すように 'char%' (文字エンコードを表示) などの変数を表示します。

コマンドラインにset character_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 を削除した場合でも、再インストールする前に MySQL を停止する必要があります。そうしないと、次のエラーが発生します。

6. 以前にアンインストールしたため、今回はコントロール パネルで停止しました。停止後に消え (コマンド ライン: net stop mysql)、再実行して、mysql サービスを正常に開始しました。

7. 正常に再起動し、ログインして変更が成功したかどうかを確認します。

8. ここで停止できます。私はさらに数回試しました。my.ini を変更し、mysql サービスをシャットダウンして再起動する限り、毎回 my.ini に従って変更されます。つまり、将来満足できない場合は、最初からやり直す必要はありません。my.ini を変更してサービスを再起動するだけです。図に示すように:

もう一度変更します:

上記は、編集者が紹介したMySql5.7.18の文字セット設定の詳細な図解です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL skip-character-set-client-handshake によって発生する文字セットの問題
  • MySQL 文字セット操作コマンドの概要
  • MySQL でデータベース エンコーディング (データベース文字セット) とテーブルの文字エンコーディングを変更する方法
  • MySQLのデフォルト文字セットを変更する2つの方法の詳細な分析
  • MySQL 5.5 に基づく文字セット設定の詳細な説明
  • MySQL インストール後に gbk 文字セットを追加する方法
  • MySQLの文字セットについては、character_set_client=binaryと設定されています。GBKの場合、テーブル記述が文字化けしてしまいます。
  • 詳細な MySQL 文字セット設定のグラフィックバージョン
  • MySQL の中国語文字化けを解決するための MySQL 文字セット GBK、GB2312、UTF8 の違い
  • MySQL の文字セットと照合ルール (MySQL 照合セット)

<<:  Linux カーネル デバイス ドライバー 高度な文字デバイス ドライバーのメモ

>>:  Vueでブラウザ共有機能を呼び出す方法

推薦する

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...

CentOS7でPHPスケジュールタスクを実行する方法

序文この記事は主に CentOS7 で PHP スケジュールタスクを実行することに関する関連コンテン...

MySQL InnoDB のトランザクション特性を確保するにはどうすればよいですか?

序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...

MySQLクエリトランザクション処理へのノード接続の実装

目次トピックmysqlの追加、削除、変更、クエリを入力しますMySQL トランザクション処理私は M...

Nginx 環境での WordPress マルチサイト構成の詳細な説明

WordPress のマルチサイト機能を使用すると、1 つの WordPress プログラムをインス...

CSSアニメーションでポイント獲得効果を実現するアイデアを詳しく解説

最近のプロジェクトでは、ポイントを集める効果を作成する必要があります。 ボスの説明によると、この効果...

Linuxで権限が拒否された場合の解決策の詳細な説明

許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...

スクロールバーのスタイルを設定するための CSS サンプルコード

スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

CSS でテキストカラーグラデーションを実装する 3 つの方法

Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

jsのイベントループ機構の解析

序文ご存知のとおり、JavaScript は本質的にシングルスレッドですが、ブラウザは非同期リクエス...

C++ TpeScriptシリーズのジェネリックについて

目次1. テンプレート2. ジェネリック3. ジェネリック再帰4. デフォルトのジェネリックパラメー...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...