>데이터 베이스 >MySQL 튜토리얼 >mysql의 구성 파일은 무엇입니까

mysql의 구성 파일은 무엇입니까

青灯夜游
青灯夜游원래의
2022-06-27 15:16:3733677검색

Windows 운영 체제의 MySQL 구성 파일은 "my.ini"이며 일반적으로 MySql 설치의 루트 디렉터리에 있거나 Linux의 MySQL 구성 파일이 숨겨진 폴더 "ProgramData" 아래에 있을 수 있습니다. 운영 체제는 "my .cnf"이고 위치는 일반적으로 "/etc/my.cnf" 또는 "/etc/mysql/my.cnf" 디렉터리에 있습니다.

mysql의 구성 파일은 무엇입니까

이 튜토리얼의 운영 환경: linux7.3&&windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

Windows 운영 체제의 MySQL 구성 파일은 my.ini이고 Linux 운영 체제의 MySQL 구성 파일은 my.cnf입니다.

  • 일반적으로 my.ini는 MySql 설치의 루트 디렉터리에 있거나 숨겨진 폴더 "ProgramData" 아래에 있을 수 있습니다.

  • 일반적으로 my.cnf는 /etc/my.cnf 또는 /etc/mysql/my.cnf 디렉터리에 있습니다.

my.ini 구성 파일

my.ini는 기본적으로 MySQL에서 사용됩니다. 구성 파일, 일반적인 상황에서는 my.ini 구성 파일의 내용만 수정하면 MySQL을 구성할 수 있습니다.

위에 소개된 디렉터리 외에도 MySQL 설치 디렉터리에는 접미사가 .ini인 구성 파일이 여러 개 있을 수 있습니다. 구성 파일마다 의미가 다릅니다.

my.ini는 MySQL에서 사용되는 기본 구성 파일입니다. 다른 구성 파일은 다양한 데이터베이스에 적합한 구성 파일에 대한 템플릿입니다. 이러한 구성 파일은 아래에 자세히 설명되어 있습니다.

  • my-huge.ini: 매우 큰 데이터베이스에 적합한 구성 파일입니다.

  • my-large.ini: 대규모 데이터베이스에 적합한 구성 파일입니다.

  • my-medium.ini: 중간 규모 데이터베이스에 적합한 구성 파일입니다.

  • my-small.ini: 소규모 데이터베이스에 적합한 구성 파일입니다.

  • my-template.ini: 구성 파일의 템플릿입니다. MySQL 구성 마법사는 구성 파일의 선택 사항을 my.ini 파일에 기록합니다.

  • my-innodb-heavy-4G.ini: 이 구성 파일은 InnoDB 스토리지 엔진에만 유효하며 서버 메모리는 4GB보다 작을 수 없음을 나타냅니다.

독자의 편의를 위해 my.ini 파일의 설명은 생략했습니다. my.ini에 있는 매개변수의 구체적인 의미는 아래에 별도로 소개되어 있습니다.

[client]
port=3306
[mysql]
default-character-set=gbk

위는 [client]와 [mysql]이 모두 클라이언트라는 것을 보여줍니다.

  • port: MySQL 클라이언트가 서버에 연결하는 데 사용하는 포트 번호를 나타냅니다. 기본 포트 번호는 3306입니다. 포트 번호를 변경해야 하는 경우 여기에서 직접 수정할 수 있습니다.

  • default-character-set: MySQL 클라이언트의 기본 문자 집합을 나타냅니다.

[mysqld]

port=3306
basedir=C:/Program Files/MySQL/MySQL Server 5.7/
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data

character-set-server=gb2312
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=35M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=69M
key_buffer_size=55M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

위는 서버의 매개변수입니다. 매개변수 설명은 다음 표에 나와 있습니다.

매개변수 이름 Description
port 은 MySQL 서버의 포트 번호를 나타냅니다.
basedir 은 MySQL
datadir 의 설치 경로는 MySQL 데이터 파일의 저장 위치와 데이터 테이블의 저장 위치를 ​​나타냅니다.
default-character-set 은 서버를 나타냅니다. 사이드 기본 문자 집합
default-storage -engine 데이터 테이블을 생성할 때 기본 스토리지 엔진
sql-mode 은 SQL 모드의 매개변수를 나타냅니다. 이 매개변수를 통해 엄격성을 설정할 수 있습니다. SQL 문 확인
max_connections 은 동시 MySQL 서버에 액세스할 수 있는 최대 연결 수를 의미합니다. 연결 중 하나는 관리자 전용으로 예약되어 있습니다.
query_cache_size 는 쿼리 중 캐시 크기를 나타냅니다. 캐시는 이전에 SELECT 문을 통해 쿼리한 정보를 저장할 수 있습니다. 정보를 통해 쿼리 효율성을 높일 수 있습니다
table_open_cache 모든 프로세스에서 열린 총 테이블 수를 나타냅니다.
tmp_table_size 메모리의 각 임시 테이블에 허용되는 최대 크기를 나타냅니다.
thread_cache_size 최대 캐시 크기를 나타냅니다. 스레드 수
myisam_max_sort_file_size 는 MySQL이 인덱스를 재구축할 때 허용되는 최대 임시 파일 크기를 나타냅니다.
myisam_sort_buffer_size 는 인덱스를 재구축할 때의 캐시 크기를 나타냅니다.
key_buffer_size 키워드의 캐시 크기를 나타냅니다
read_buffer_size 는 MyISAM 테이블 전체 테이블 스캔의 캐시 크기를 나타냅니다.
read_rnd_buffer_size 는 정렬된 데이터를 캐시에 저장하는 것을 나타냅니다.
sort_buffer_size 는 정렬에 사용되는 캐시 크기
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=107M
innodb_log_file_size=54M
innodb_thread_concurrency=18

以上是 InnoDB 存储引擎使用的参数,参数说明如下:

  • innodb_additional_mem_pool_size:表示附加的内存池,用来存储 InnoDB 表的内容。

  • innodb_flush_log_at_trx_commit:是设置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上。

  • innodb_log_buffer_size:表示用来存储日志数据的缓存区的大小。

  • innodb_buffer_pool_size:表示缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据。

  • innodb_log_file_size:表示日志文件的大小。

  • innodb_thread_concurrency:表示在 InnoDB 存储引擎允许的线程最大数。

注意:每次修改 my.ini 文件中的参数后,必须重新启动 MySQL 服务才会有效。

my.cnf配置文件

为了方便读者阅读,我们省略了 my.cnf 文件中的注释内容。下面分开介绍 my.cnf 中参数的具体意义,文件内容如下:

[client]
port=3306
socket=/var/run/mysql/mysql.sock
[mysqldump]
quick
max_allowed_packet = 16M

以上参数会被 MySQL 客户端应用读取,参数说明如下:

  • port:MySQL 客户端连接服务器端时使用的端口号,默认为 3306

  • socket:套接字文件所在目录

  • quick:支持较大的数据库转储,导出非常巨大的表时需要此项 。

  • max_allowed_packet:服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要),每个连接独立的大小,大小动态增加。

注意:只有 MySQL 附带的客户端应用程序保证可以读取这段内容。如果想要自己的 MySQL 应用程序获取这些值,需要在 MySQL 客户端库初始化的时候指定这些选项。

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /mydata/mysql/data
port=3306
server-id = 1
socket=/var/run/mysql/mysql.sock

上述参数说明如下:

  • user:mysqld 程序在启动后将在给定 UNIX/Linux 账户下执行。mysqld 必须从 root 账户启动才能在启动后切换到另一个账户下执行。mysqld_safe 脚本将默认使用 user=mysql 选项来启动 mysqld 程序。

  • basedir:指定 MySQL 安装的绝对路径;

  • datadir:指定 MySQL 数据存放的绝对路径;

  • port:服务端口号,默认为 3306

  • server-id:MySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一。

  • socket:socket 文件所在目录

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
lower_case_table_names = 1
key_buffer_size=16M
max_allowed_packet=8M
no-auto-rehash
sql_mode=TRADITIONAL
  • character-set-server:数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用 4 个字节)

  • collation-server:数据库字符集对应一些排序等规则,注意要和 character-set-server 对应

  • init_connect:设置 client 连接 mysql 时的字符集,防止乱码

  • lower_case_table_names:是否对 sql 语句大小写敏感,1 表示不敏感

  • key_buffer_size:用于指定索引缓冲区的大小

  • max_allowed_packet:设置一次消息传输的最大值

  • no-auto-rehash:仅仅允许使用键值的 UPDATES 和 DELETES

  • sql_mode:表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度

上述内容可能与你的配置文件不同,当有什么需求时,复制使用相应的参数即可。

【相关推荐:mysql视频教程

위 내용은 mysql의 구성 파일은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.