Configuring the Character Set and Collation for Applications

本文详细介绍了如何为使用MySQL的应用程序配置字符集和排序规则,包括数据库级别、启动时设置、构建时设置等方法,并强调了在不同应用程序间使用不同设置的灵活性。此外,还讨论了在配置客户端连接时考虑的环境因素,确保数据存储和通信的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Configuring the Character Set and Collation for Applications

For applications that store data using the default MySQL character set and collation (latin1,latin1_swedish_ci), no special configuration should be needed. If applications require data storage using a different character set or collation, you can configure character set information several ways:

  • Specify character settings per database. For example, applications that use one database might requireutf8, whereas applications that use another database might require sjis.

  • Specify character settings at server startup. This causes the server to use the given settings for all applications that do not make other arrangements.

  • Specify character settings at configuration time, if you build MySQL from source. This causes the server to use the given settings for all applications, without having to specify them at server startup.

When different applications require different character settings, the per-database technique provides a good deal of flexibility. If most or all applications use the same character set, specifying character settings at server startup or configuration time may be most convenient.

For the per-database or server-startup techniques, the settings control the character set for data storage. Applications must also tell the server which character set to use for client/server communications, as described in the following instructions.

The examples shown here assume use of the utf8 character set and utf8_general_ci collation.

Specify character settings per database. To create a database such that its tables will use a given default character set and collation for data storage, use a CREATE DATABASE statement like this:

CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

Tables created in the database will use utf8 and utf8_general_ci by default for any character columns.

Applications that use the database should also configure their connection to the server each time they connect. This can be done by executing a SET NAMES 'utf8' statement after connecting. The statement can be used regardless of connection method: The mysql client, PHP scripts, and so forth.

In some cases, it may be possible to configure the connection to use the desired character set some other way. For example, for connections made using mysql, you can specify the --default-character-set=utf8command-line option to achieve the same effect as SET NAMES 'utf8'.

For more information about configuring client connections, see Section 9.1.4, “Connection Character Sets and Collations”.

Specify character settings at server startup. To select a character set and collation at server startup, use the --character-set-server and --collation-server options. For example, to specify the options in an option file, include these lines:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

These settings apply server-wide and apply as the defaults for databases created by any application, and for tables created in those databases.

It is still necessary for applications to configure their connection using SET NAMES or equivalent after they connect, as described previously. You might be tempted to start the server with the --init_connect="SET NAMES 'utf8'" option to cause SET NAMES to be executed automatically for each client that connects. However, this will yield inconsistent results because the init_connect value is not executed for users who have the SUPERprivilege.

Specify character settings at MySQL configuration time. To select a character set and collation when you configure and build MySQL from source, use the DEFAULT_CHARSET and DEFAULT_COLLATION options for CMake:

shell> cmake . -DDEFAULT_CHARSET=utf8 \
           -DDEFAULT_COLLATION=utf8_general_ci

The resulting server uses utf8 and utf8_general_ci as the default for databases and tables and for client connections. It is unnecessary to use --character-set-server and --collation-server to specify those defaults at server startup. It is also unnecessary for applications to configure their connection using SET NAMES or equivalent after they connect to the server.

Regardless of how you configure the MySQL character set for application use, you must also consider the environment within which those applications execute. If you will send statements using UTF-8 text taken from a file that you create in an editor, you should edit the file with the locale of your environment set to UTF-8 so that the file encoding is correct and so that the operating system handles it correctly. If you use the mysql client from within a terminal window, the window must be configured to use UTF-8 or characters may not display properly. For a script that executes in a Web environment, the script must handle character encoding properly for its interaction with the MySQL server, and it must generate pages that correctly indicate the encoding so that browsers know how to display the content of the pages. For example, you can include this <meta> tag within your<head> element:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<think>我们被要求解释“Configuring the kernel”的含义,并按照规则输出相关问题。 根据之前的内核编译上下文,“Configuring the kernel”指的是内核配置阶段,即通过设置各种选项来决定内核的功能和模块。 我们将详细解释这一步骤,包括其目的、常用方法和注意事项。 最后,按照要求提出3-5个相关问题,并以“§§相关问题§§”开头,问题之间用换行分隔,但不分散(即连续列出)。</think>### 内核配置(Configuring the kernel)详解 #### 1. **核心概念** 内核配置是通过**选择性地启用/禁用功能模块**来定制Linux内核的过程。主要目标: - 🎯 精简内核体积(移除不需要的驱动/功能) - ⚙️ 优化性能(针对特定硬件) - 🔒 增强安全性(禁用潜在风险功能) - 🔋 减少资源占用(适合嵌入式设备) #### 2. **配置方法(常用命令)** | 命令 | 界面类型 | 适用场景 | |------------------------|---------------|-------------------------| | `make menuconfig` | 文本菜单 | 服务器/无图形界面环境 | | `make xconfig` | Qt图形界面 | 桌面环境(需安装Qt) | | `make gconfig` | GTK图形界面 | GNOME桌面环境 | | `make oldconfig` | 命令行 | 升级内核时保留原配置 | | `make localmodconfig` | 自动配置 | 根据当前加载模块自动精简 | #### 3. **关键配置文件** - `.config`:主配置文件(文本格式) - `arch/*/configs/`:架构默认配置 - `/proc/config.gz`:运行中内核的配置 #### 4. **配置内容示例** ```plaintext CONFIG_LOCALVERSION="-custom" # 自定义内核版本标识 CONFIG_MODULES=y # 启用模块加载功能 CONFIG_BLK_DEV_SD=y # 启用SCSI磁盘支持 CONFIG_USB_HID=n # 禁用USB输入设备(服务器场景) ``` #### 5. **操作流程** ```bash # 1. 进入源码目录 cd ~/linux-4.15.18 # 2. 启动配置界面 make menuconfig # 3. 配置保存路径 [ ] Save Configuration to an Alternate File (.config) # 默认保存为.config ``` #### 6. **配置原则** - ✅ **必选项**:当前硬件所需驱动(如SATA控制器) - ⚠️ **慎选项**:`DEBUG`/`EXPERIMENTAL`(可能降低性能) - ❌ **可禁用**: - 未使用的文件系统(Btrfs/ReiserFS) - 特殊硬件支持(游戏手柄/红外) - 虚拟化组件(非虚拟机环境) #### 7. **配置验证** ```bash # 检查配置完整性 make olddefconfig # 统计配置项 grep "^CONFIG_" .config | wc -l # 典型桌面配置:约5000项 # 精简服务器配置:约2000项 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值