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でブラウザ共有機能を呼び出す方法

推薦する

Flask と Vue のフロントエンドとバックエンドを分離したプロジェクト展開のサンプル コード

以前、プロジェクトを開発しました。バックエンドのインターフェースを書くために Flask フレームワ...

UbuntuからMySQLを削除して再インストールする方法

まずmysqlを削除します: sudo apt-get remove mysql-*残ったデータをク...

Vueドロップダウンメニューのコンポーネント開発の詳細説明

この記事の例では、Vueドロップダウンメニューのコンポーネント開発の具体的なコードを参考までに共有し...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...

JavaScriptプロトタイプチェーンの詳細な説明

目次1. コンストラクタとインスタンス2. プロパティプロトタイプ3. プロパティ __proto_...

フレームウィンドウ間の関連付けとハイパーリンクのターゲット属性の使用を実装する方法

フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

Vue でのスロット配置と使用状況分析

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

Linux の MySQL でリモート接続を承認する方法

注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...

Linux での MySQL 5.6.33 のインストールと設定のチュートリアル

このチュートリアルでは、LinuxでのMySQL 5.6.33のインストールと設定方法を参考までに紹...

Ubuntu 16.04 で FTP サーバーを構築するチュートリアル

Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...

HTML コード内のスペースと空白行についての簡単な説明

HTML コード内の連続するスペースまたは空白行 (改行) はすべて 1 つのスペースとして表示され...

MySQL 8.0 以降の一般的なコマンドの詳細な説明

リモートアクセスを有効にする次のコマンドを実行して、root ユーザーのリモート アクセス権を有効に...