首页 > 数据库 >12、MySQL数据库配置

12、MySQL数据库配置

时间:2023-03-14 17:32:08浏览次数:58  
标签:12 变量 数据库 MySQL MODE SQL 服务器 root

MySQL系统数据库

MySQL 系统数据库主要包括以下几个:

mysql 数据库:用于存储 MySQL 的权限信息和系统变量等,包括 user 表、db 表、host 表等,这些表是管理 MySQL 权限的重要基础。

information_schema 数据库:用于存储关于 MySQL 数据库对象的元数据信息,包括数据库、表、列、索引、用户权限等信息。

performance_schema 数据库:用于存储 MySQL 的性能统计数据,包括 CPU、I/O、内存等各种资源的使用情况,以及锁等方面的信息。

sys 数据库:提供了一系列的视图,用于方便管理者查询 MySQL 系统状态和监控 MySQL 系统。

服务器配置及状态

可以通过mysqld选项,服务器系统变量和服务器状态变量进行MySQL的配置和查看状态

官方手册:​​https://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.html​

注意:
其中有些参数支持运行时修改,会立即生效
有些参数不支持动态修改,且只能通过修改配置文件,并重启服务器程序生效
有些参数作用域是全局的,为所有会话设置
有些可以为每个用户提供单独(会话)的设置
服务器选项
#获取mysqld当前启动选项
mysqld --print-defaults

12、MySQL数据库配置_performance_schema

设置服务器选项方法:

设置 MySQL 服务器选项可以通过多种方式完成,包括:

在 MySQL 配置文件中设置选项值,通常是 my.cnf 或 my.ini 文件。

vim /etc/my.cnf
[mysqld]
skip_name_resolve=1
skip-grant-tables

在 MySQL 启动命令中设置选项值,使用 --option_name=value 的格式。

shell> /usr/bin/mysqld_safe --skip-name-resolve=1
shell> /usr/libexec/mysqld --basedir=/usr

12、MySQL数据库配置_系统数据库_02

12、MySQL数据库配置_全局变量_03

服务器系统变量

服务器系统变量是MySQL服务器的重要配置参数,可以影响MySQL服务器的性能和行为。MySQL提供了许多服务器系统变量,用于控制各种功能,如内存使用、查询执行、复制和安全等。这些变量可以在MySQL配置文件中设置,也可以在运行时使用SET语句进行更改。

下面是一些常用的服务器系统变量:

innodb_buffer_pool_size:InnoDB存储引擎使用的缓冲池大小,以字节为单位。这个变量决定了InnoDB能够缓存多少数据和索引,可以影响查询性能。

max_connections:MySQL服务器允许的最大连接数。这个变量可以影响服务器的并发性能,但也要考虑系统的内存和CPU资源。

query_cache_size:MySQL查询缓存的大小,以字节为单位。查询缓存可以提高查询性能,但也可能降低性能,因为缓存需要占用内存和CPU资源。

tmp_table_size:临时表使用的最大内存量,以字节为单位。临时表通常用于处理大量数据或排序和分组操作,可以提高查询性能。

join_buffer_size:连接操作使用的缓冲区大小,以字节为单位。连接操作通常是比较消耗CPU和内存资源的操作,通过调整这个变量可以提高查询性能。

需要注意的是,改变某些服务器系统变量的值可能会影响到MySQL服务器的稳定性和安全性,因此在更改服务器系统变量之前应该进行详细的测试和评估。

SHOW GLOBAL VARIABLES; #只查看global变量
SHOW [SESSION] VARIABLES;#查看所有变量(包括global和session)
#查看指定的系统变量
SHOW VARIABLES LIKE 'VAR_NAME';
SELECT @@VAR_NAME;
#查看选项和部分变量

修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效

SET GLOBAL system_var_name=value;
SET @@global.system_var_name=value;

修改会话变量

SET [SESSION] system_var_name=value;
SET @@[session.]system_var_name=value;

12、MySQL数据库配置_系统数据库_04

12、MySQL数据库配置_服务器选项_05

[root@centos8 ~]#vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
character_set_results=utf8mb4
#character_set_results不是服务器选项,写入配置文件将导致无法启动
[root@centos8 ~]#systemctl restart mariadb
Job for mariadb.service failed because the control process exited with error
code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.

12、MySQL数据库配置_performance_schema_06

12、MySQL数据库配置_系统数据库_07

12、MySQL数据库配置_performance_schema_08

修改最大连接数

12、MySQL数据库配置_服务器选项_09

12、MySQL数据库配置_服务器选项_10

12、MySQL数据库配置_全局变量_11

修改配置文件
[mysqld]
max_connections = 8000
或者修改全局变量
set global max_connections=8000;
修改后可能无法增大,需要修改限制
#方法1
[root@centos8 ~]#vim /usr/lib/systemd/system/mariadb.service
[Service]
#加下面一行
LimitNOFILE=65535
#方法2
[root@centos8 ~]#mkdir /etc/systemd/system/mariadb.service.d/
[root@node3 ~]#vim /etc/systemd/system/mariadb.service.d/limits.conf
[Service]
LimitNOFILE=65535

修改页大小

说明:初始化数据目录后,不能更改此系统变量的值。 在MariaDB实例启动时设置InnoDB的页面大小,此后保持不变。

12、MySQL数据库配置_performance_schema_12

[root@centos8 ~]#vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
innodb_page_size=64k
[root@centos8 ~]#rm -rf /var/lib/mysql/* #需要进行重新初始化
[root@centos8 ~]#systemctl restart mariadb
[root@centos8 ~]#mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Server version: 10.3.11-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like "innodb_page_size";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_page_size | 65536 |
+------------------+-------+
服务器变量 SQL_MODE

SQL_MODE 是 MySQL 服务器的一个系统变量,用于控制 MySQL 数据库的语法和行为。它可以设置为一个或多个值的列表,不同的值之间用逗号隔开。SQL_MODE 可以在启动 MySQL 服务器时设置,也可以在运行时使用 SET 命令进行设置。

SQL_MODE 可以影响以下内容:

语法检查:SQL_MODE 可以控制 MySQL 是否允许某些特定的 SQL 语句,或者是否执行某些特定的语句。

数据校验:SQL_MODE 可以控制 MySQL 是否允许插入或更新某些特定的数据类型或值。

严格模式:SQL_MODE 可以控制 MySQL 是否启用严格模式,以强制执行更严格的数据验证和类型检查。

SQL_MODE 可以设置的选项非常多,包括 ANSI、MySQL、Oracle 等多种不同的模式。在设置 SQL_MODE 时,需要考虑数据库应用程序的需求,以及是否需要兼容不同的数据库平台。

以下是一些常用的 SQL_MODE 值:

ANSI:启用 ANSI SQL 模式。

STRICT_TRANS_TABLES:在插入或更新数据时,禁止插入空值或零值,以及数据类型不匹配的值。

NO_AUTO_CREATE_USER:禁止自动创建用户。

ONLY_FULL_GROUP_BY:禁止 GROUP BY 语句中使用非聚合列。

ERROR_FOR_DIVISION_BY_ZERO:在发生除以零错误时,抛出错误。

NO_ZERO_IN_DATE:不允许日期中出现 '0000-00-00' 的情况;

NO_ENGINE_SUBSTITUTION:如果使用的存储引擎不可用,不要使用另一个存储引擎替代它。

NO_BACKSLASH_ESCAPES:禁用反斜杠的转义功能。如果启用此模式,则在字符串中使用反斜杠时,将会将其视为普通字符,而不是转义字符。

PIPES_AS_CONCAT:将“||”解释为字符串连接运算符,而不是按位或运算符

可以使用以下命令查看当前 MySQL 服务器的 SQL_MODE 变量值:

SHOW VARIABLES LIKE 'sql_mode';

可以使用以下命令修改 SQL_MODE 变量的值:

SET sql_mode='value1,value2,...';

注意:如果需要永久更改 SQL_MODE 变量的值,可以将其添加到 MySQL 配置文件中(如 my.cnf 或 my.ini),并在 MySQL 服务器启动时加载该文件。

标签:12,变量,数据库,MySQL,MODE,SQL,服务器,root
From: https://blog.51cto.com/gavenlee/6120669

相关文章

  • MySQL 考试练习题
    1、用户表account1、用户表account(用户编号userid,用户名fullname,密码passward,性别sex,住址adderss,邮箱email,电话phone)account(useridchar(6),fullnamechar(4),passwar......
  • 如何将自定义的日志直接写入到 mysql 数据库中?
    要将自定义的日志直接写入MySQL数据库中,您可以使用以下步骤:安装MySQL数据库,并创建一个新的数据库和表来存储日志数据。在您的代码中,使用MySQL连接器来连接到MySQL数据库。创......
  • mysql备份还原
    本次试验用的是mysqldump进行备份。1、操作系统的Shell下,执行  mysqldump-umysql-p db1>/mysqlbak/db1.sql       说明:-umysql内mysql是数据库的登......
  • mysql ERROR 3948 (42000): Loading local data is disabled; this must be enabled o
    mysql>selectversion();+-----------+|version()|+-----------+|8.0.20|+-----------+1rowinset(0.00sec)使用loaddata导入数据时候报错......
  • MySQL Variables--slave_exec_mode参数
    基础信息MySQL提供参数slave_exec_mode来控制主从复制中遇到的数据冲突和错误,有严格模式(STRICT)和冥等模式(IDEMPOTENT)两种选项,默认为严格模式。在严格模式下,MySQL会严......
  • windows系统mysql定时备份
    如下:一、创建bat任务脚本1.新建txt文档2.打开txt文档,并粘贴入以下内容3.按照自己的需求对内容进行修改,并删除掉//后内容以及中文空格,否则会运行失败4.保存,并将文件后......
  • mysql 有守护进程导致无法kill停止
    现象:停止mysqld服务时,发现kill进程后,过一段时间服务会自动重启。查看发现是守护进程导致可以试下以下办法方式一:使用service停止:servicemysqldstop方式二:......
  • MySQL 的事务隔离级别和锁
    MySQL的事务隔离级别(IsolationLevel)  数据库锁,分为悲观锁和乐观锁,“悲观锁”悲观锁一般利用SELECT…FORUPDATE类似的语句乐观锁利用CAS机制,并不会对数据......
  • 力扣178(MySQL)-分数排名(中等)
    题目:表: Scores编写SQL查询对分数进行排序。排名按以下规则计算:分数应按从高到低排列。如果两个分数相等,那么两个分数的排名应该相同。在排名相同的分数后,排名数应......
  • DBeaver Ultimate Edtion 23 Multilingual (macOS, Linux, Windows) - 通用数据库工具
    请访问原文链接:https://sysin.org/blog/dbeaver-23/,查看最新版。原创作品,转载请保留出处。作者主页:www.sysin.org通用数据库工具DBeaver是一个通用的数据库管理工具,适......