Mysql的物理文件

1.Windows下面的配置文件是:my.ini

[mysql]
default-character-set=utf8

[mysqld]
port=3306
default_authentication_plugin=mysql_native_password
basedir=E:/phpStudy/phpstudy_pro/Extensions/MySQL8.0.12/
datadir=E:/phpStudy/phpstudy_pro/Extensions/MySQL8.0.12/data/
character-set-server=utf8
default-storage-engine=MyIsam
max_connections=1000
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8'
innodb_buffer_pool_size=64M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=120
innodb_log_buffer_size=4M
innodb_log_file_size=256M
interactive_timeout=120
join_buffer_size=2M
key_buffer_size=32M
log-error="E:/phpStudy/phpstudy_pro/Extensions/MySQL8.0.12/data"
log_error_verbosity=1
max_allowed_packet=16M
max_connections=1000
max_heap_table_size=64M
myisam_max_sort_file_size=64G
myisam_sort_buffer_size=32M
read_buffer_size=512kb
read_rnd_buffer_size=4M
server_id=1
skip-external-locking=on
sort_buffer_size=256kb
table_open_cache=256
thread_cache_size=16
tmp_table_size=64M
wait_timeout=120
[client]
port=3306
default-character-set=utf8

default-strong-engine=INNODB

主从和集群都要修改配置文件

2.Linux系统下面的配置文件是:my.cnf

[client]
port		= 3306
socket		= /tmp/mysql.sock

[mysqld]
secure_file_priv=/var/lib/mysql
port		= 3306
socket		= /tmp/mysql.sock
datadir = /usr/local/mysql/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
tmp_table_size = 32M
default_authentication_plugin = mysql_native_password
lower_case_table_names = 1
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log_error=/usr/local/mysql/data/error.err


explicit_defaults_for_timestamp = true
max_connections = 1000
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
binlog_expire_logs_seconds = 600000
slow_query_log=1
slow-query-log-file=/usr/local/mysql/data/mysql-slow.log
long_query_time=3
early-plugin-load = ""

innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M

Bin目录下的mysql程序:

程序描述
mysqldmysql服务器进程,只有该程序运行之后,客户端才能连接操作mysql数据库
mysql连接mysql
mysqlbinlog用于从二进制日志读取语句。在二进制日志文件中包含执行的语句,可用来帮助系统从崩溃中恢复
mysqladmin用来检索版本、进程、以及服务器的状态信息
mysqlcheck检查、修复、分析以及优化表的表维护
mysqldump将mysql数据库转储到一个文件,导出sql数据
mysqlshow慢查询语句分析
错误:
[root@localhost mysql]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 产生原因:无法连接到本地的mysql服务器

解决方法:

[root@localhost mysql]# sudo ./support-files/mysql.server start
Starting MySQL.. SUCCESS! 
[root@localhost mysql]# mysql -uroot -p
Data目录:
drwxr-x---. 2 mysql mysql       38 3月  31 04:52 ailili
-rw-r-----. 1 mysql mysql       56 3月  28 15:38 auto.cnf//机器id
-rw-------. 1 mysql mysql     1680 3月  28 15:38 ca-key.pem//证书
-rw-r--r--. 1 mysql mysql     1112 3月  28 15:38 ca.pem//证书
-rw-r--r--. 1 mysql mysql     1112 3月  28 15:38 client-cert.pem
-rw-------. 1 mysql mysql     1680 3月  28 15:38 client-key.pem
-rw-r-----. 1 mysql mysql    14260 4月   1 04:50 error.err//错误日志
-rw-r-----. 1 mysql mysql    49152 4月   1 04:52 #ib_16384_0.dblwr
-rw-r-----. 1 mysql mysql  8437760 3月  28 15:38 #ib_16384_1.dblwr
-rw-r-----. 1 mysql mysql     3531 4月   1 04:35 ib_buffer_pool
-rw-r-----. 1 mysql mysql 10485760 4月   1 04:50 ibdata1//共享表空间文件
-rw-r-----. 1 mysql mysql 67108864 4月   1 04:52 ib_logfile0//事务重铸
-rw-r-----. 1 mysql mysql 67108864 3月  28 15:38 ib_logfile1//事务回滚
-rw-r-----. 1 mysql mysql 12582912 4月   1 04:50 ibtmp1
drwxr-x---. 2 mysql mysql      187 4月   1 04:50 #innodb_temp
-rw-r-----. 1 mysql mysql        5 4月   1 04:50 localhost.localdomain.pid//mysql进程id的文件
drwxr-x---. 2 mysql mysql      143 3月  28 15:38 mysql
-rw-r-----. 1 mysql mysql      179 3月  28 15:38 mysql-bin.000001
-rw-r-----. 1 mysql mysql     1205 3月  29 04:11 mysql-bin.000002
-rw-r-----. 1 mysql mysql      179 3月  29 04:21 mysql-bin.000003
-rw-r-----. 1 mysql mysql      987 3月  31 03:54 mysql-bin.000004
-rw-r-----. 1 mysql mysql 34891869 4月   1 04:35 mysql-bin.000005
-rw-r-----. 1 mysql mysql      179 4月   1 04:35 mysql-bin.000006
-rw-r-----. 1 mysql mysql      156 4月   1 04:50 mysql-bin.000007//二进制日志
-rw-r-----. 1 mysql mysql      133 4月   1 04:50 mysql-bin.index//索引
-rw-r-----. 1 mysql mysql 25165824 4月   1 04:50 mysql.ibd
-rw-r-----. 1 mysql mysql     1257 4月   1 04:50 mysql-slow.log//慢查询日志文件
drwxr-x---. 2 mysql mysql     8192 3月  28 15:38 performance_schema
-rw-------. 1 mysql mysql     1680 3月  28 15:38 private_key.pem
-rw-r--r--. 1 mysql mysql      452 3月  28 15:38 public_key.pem
-rw-r--r--. 1 mysql mysql     1112 3月  28 15:38 server-cert.pem
-rw-------. 1 mysql mysql     1676 3月  28 15:38 server-key.pem
drwxr-x---. 2 mysql mysql       28 3月  28 15:38 sys
-rw-r-----. 1 mysql mysql 16777216 4月   1 04:52 undo_001//回滚日志
-rw-r-----. 1 mysql mysql 16777216 4月   1 04:52 undo_002
-rw-r--r--. 1 root  root         0 3月  28 15:48 vi
myisam:索引与数据是分开存储的

.MYD 存储数据

.MYI 存储索引

INNODB(主键索引):索引与数据是不分开存储

.ibd : 独享空间:一个表一个空间

.ibdatal :共享空间: 很多表共享一个文件

Btree树

3.mysql的日志:

查询日志,慢查询日志,错误日志,二进制日志,事务日志(redo,undo),中继日志

查询日志

mysql的查询日志记录了所有mysql数据库请求的信息。无论这些请求是否得到了正确的执行。默认文件名为hostname.log。默认情况下MySQL查询日志是 关闭的。生产环境,如果开启mysql查询日志,对性能还是有蛮大的影响的。另外很多时候,MySQL慢查询日志基本可以定位那些出现性能问题的SQL,所以MySQL查询日志应用的场景不多。

开启查询日志:

show variables like "%general_log%"; --查询日志是否开启

set global general_log="on"; --设置查询日志的关闭和开启

慢查询日志

MySQL的 慢查询日志是MySQL提供的一种日志记录,它用来记录在mysql中响应时间超过阀值的语句,具体值运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10s以上的语句。默认情况下,MySQL数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。

开启慢查询日志:

slow_query_log=1; --开启慢查询日志

slow-query-log-file=path+文件名 --慢查询日志目录及文件

long_query_time=3; --设置最大等待时间

show variables like "%slow%"; --查询慢查询日志是否开启

mysqlshow

bin目录中的 mysqlshow 是帮助文档,通过mysqlshow --help可以查看参数,进行分析。

mysqlshow  Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Shows the structure of a MySQL database (databases, tables, and columns).

Usage: mysqlshow [OPTIONS] [database [table [column]]]

If last argument contains a shell or SQL wildcard (*,?,% or _) then only
what's matched by the wildcard is shown.
If no database is given then all matching databases are shown.
If no table is given, then all matching tables in database are shown.
If no column is given, then all matching columns and column types in table
are shown.

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
The following groups are read: mysqlshow client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file,
                        except for login file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
                        Also read groups with concat(group, suffix)
--login-path=#          Read this path from the login file.
  --bind-address=name IP address to bind to.
  -c, --character-sets-dir=name 
                      Directory for character set files.
  --default-character-set=name 
                      Set the default character set.
  --count             Show number of rows per table (may be slow for non-MyISAM
                      tables).
  -C, --compress      Use compression in server/client protocol.
  -#, --debug[=name]  Output debug log. Often this is 'd:t:o,filename'.
  --debug-check       Check memory and open file usage at exit.
  --debug-info        Print some debug info at exit.
  --default-auth=name Default authentication client-side plugin to use.
  --enable-cleartext-plugin 
                      Enable/disable the clear text authentication plugin.
  -?, --help          Display this help and exit.
  -h, --host=name     Connect to host.
  -i, --status        Shows a lot of extra information about each table.
  -k, --keys          Show keys for table.
  -p, --password[=name] 
                      Password to use when connecting to server. If password is
                      not given, it's solicited on the tty.
  --plugin-dir=name   Directory for client-side plugins.
  -P, --port=#        Port number to use for connection or 0 for default to, in
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
                      /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
                      memory).
  -t, --show-table-type 
                      Show table type column.
  -S, --socket=name   The socket file to use for connection.
  --server-public-key-path=name 
                      File path to the server public RSA key in PEM format.
  --get-server-public-key 
                      Get server public key
  --ssl-mode=name     SSL connection mode.
  --ssl-ca=name       CA file in PEM format.
  --ssl-capath=name   CA directory.
  --ssl-cert=name     X509 cert in PEM format.
  --ssl-cipher=name   SSL cipher to use.
  --ssl-key=name      X509 key in PEM format.
  --ssl-crl=name      Certificate revocation list.
  --ssl-crlpath=name  Certificate revocation list path.
  --tls-version=name  TLS version to use, permitted values are: TLSv1, TLSv1.1,
                      TLSv1.2, TLSv1.3
  --ssl-fips-mode=name 
                      SSL FIPS mode (applies only for OpenSSL); permitted
                      values are: OFF, ON, STRICT
  --tls-ciphersuites=name 
                      TLS v1.3 cipher to use.
  -u, --user=name     User for login if not current user.
  -v, --verbose       More verbose output; you can use this multiple times to
                      get even more verbose output.
  -V, --version       Output version information and exit.
  --compression-algorithms=name 
                      Use compression algorithm in server/client protocol.
                      Valid values are any combination of
                      'zstd','zlib','uncompressed'.
  --zstd-compression-level=# 
                      Use this compression level in the client/server protocol,
                      in case --compression-algorithms=zstd. Valid range is
                      between 1 and 22, inclusive. Default is 3.

Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
bind-address                      (No default value)
character-sets-dir                (No default value)
default-character-set             auto
count                             FALSE
compress                          FALSE
debug-check                       FALSE
debug-info                        FALSE
default-auth                      (No default value)
enable-cleartext-plugin           FALSE
host                              (No default value)
status                            FALSE
keys                              FALSE
plugin-dir                        (No default value)
port                              3306
show-table-type                   FALSE
socket                            /tmp/mysql.sock
server-public-key-path            (No default value)
get-server-public-key             FALSE
ssl-ca                            (No default value)
ssl-capath                        (No default value)
ssl-cert                          (No default value)
ssl-cipher                        (No default value)
ssl-key                           (No default value)
ssl-crl                           (No default value)
ssl-crlpath                       (No default value)
tls-version                       (No default value)
tls-ciphersuites                  (No default value)
user                              (No default value)
compression-algorithms            (No default value)
zstd-compression-level            3
错误日志

MySQL错误日志是记录MySQL运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。错误日志的命名通常为hostname.err。其中,hostname表示服务器主机名。

错误日志开启:

show variables like "%log_error%"; --查看错误日志

log_error = 错误日志路径与文件名 --配置文件中开启错误日志

归档备份:

mv host_name.err host_name.err-old

Mysql -uroot -p

flush logs;

binlog日志

二进制日志主要记录mysql数据库的变化,二进制日志包含所有更新了数据或者潜在更新了数据(如没有匹配到任何行的delete语句),语句以时间的形式保存,描述了数据的更改。二进制日志还包含执行每个更新数据库语句的时间信息,使用二进制日志的主要目的是最大可能的恢复数据库,也可以用来做主从复制。

开启二进制日志:

show variables like "%log_bin%"; --查看二进制日志是否开启

log_bin = 二进制日志路径+文件名 --设置二进制日志路径

server-id =1; --mysql服务id,必须

max_binlog_size = 100m; --单个日志文件大小

二进制日志的作用-数据恢复

根据数据节点恢复:./mysqlbinlog --start-position=968 --stop-position=1205 /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p

根据时间恢复:./mysqlbinlog-start-datatime="2021-11-02 14:00:00" --stop-datetime="2021-11-03" 14:00:00 /usr/local/mysql/data/mysql-bin.000005 | mysql -uroot -p

直接运行:./mysqlbinlog/usr/local/mysql/data/mysql-bin.000005 | mysql -uroot -p

二进制日志的操作

show master status; --查看当前使用的二进制文件

show binlog events in "mysql-bin.000001"; --查询指定的二进制文件信息

show binary logs; --查询当前mysql所有的二进制文件

show binlog events; --查询第一个日志文件

restet master;--清空所有的二进制文件

错误:

错误原因:已经有这个用户了

解决方法:直接运行创建库的操作

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频压缩软件都有哪些?分享4款专业的视频软件!

在数字化时代,视频已经成为我们生活中不可或缺的一部分。然而,随着视频质量的不断提升,其占用的存储空间也在迅速增长。为了解决这个问题,视频压缩软件应运而生。本文将为您介绍几款热门的视频压缩软件,帮助您选择最适…

conda创建虚拟环境太慢,Collecting package metadata (current_repodata.json): failed

(省流版:只看加粗红色,末尾也有哦) 平时不怎么用conda,在前公司用服务器的时候用的是公司的conda源,在自己电脑上直接用python创建虚拟环境完事儿,所以对conda的配置并不熟悉~~【狗头】。但是python虚拟环境的最大缺点…

Win安装SSH教程

在Windows操作系统上安装和配置SSH(Secure Shell)可以让你通过加密的方式远程连接和管理其他计算机或服务器。以下是安装和配置SSH的简单教程: 下载OpenSSH for Windows: 访问OpenSSH for Windows的官方网站(https://g…

嵌入式面向对象学习 RT-Thread I/O 设备管理框架 设备驱动层 案例测试

嵌入式面向对象 RT-Thread I/O 设备管理框架 设备驱动层 注:本文介绍性内容转载于《RT-Thread记录(十、全面认识 RT-Thread I/O 设备模型)》 注: 本次使用的开发板 : ​ 兆易创新GD32F407VET6开发板 ​ 雅特力科技…

数据结构面试题报错调试方法记录

栈和队列报错调试 1.用栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 此题解题思路如下: 先将数据放在pushst栈里面,popst栈为空再把pushst栈里面的数据放进popst栈里面去,不为空则不执行。不为空时候直接拿取栈…

楚雄师范学院数学与计算机学院与树莓集团产教融合合作签约仪式顺利举行!

2024年4月2日,楚雄师范学院数学与计算机学院与树莓集团产教融合合作签约仪式在云南楚雄师范学院隆重举行。未来,双方将在国际数字影像产业园建设产教融合实训基地,全面增强人才培养的社会适应性。 出席本次签约仪式的嘉宾有学院党委书记周云燕…

PyTorch深度学习——张量及其运算

深度学习框架的张量 张量的运算是深度学习的核心,如一张图片可以看作是四维的张量,一个迷你批次的文本可以看作是二维张量,基本上所有的深度学习模型都可以表示为张量的操作,梯度、反向传播算法也可以表示为张量和张量的运算 张…

opencv图像处理技术(阈值处理与图像平滑)

进行图像处理时,常常需要对图像进行预处理以提取所需的信息或改善图像质量。阈值处理和图像平滑是两种常见的预处理技术。 阈值处理 阈值处理是一种图像分割技术,其基本思想是将图像中的像素值与一个或多个预先设定的阈值进行比较,根据比较…

Git入门实战教程之创建版本库

一、Git简介 Git是一个分布式版本控制系,分层结构如下: Git分为四层: 1、工作目录 当前正在工作的项目的实际文件目录,我们执行命令git init时所在的地方,也就是我们执行一切文件操作的地方。 2、暂存区 暂存区是…

软件测试常考面试题-软件测试面试宝典(一篇足矣)

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

数据库表设计18条黄金规则

前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。 后端开发的日常工作&#xff…

C语言初阶—9函数

函数的声明 (main函数前)----告诉有一个函数 格式: 类型 函数名(参数); 函数的声明 放到头文件add.c 函数的定义 ----创建函数----放到add.c 格式:类型 函数名(参数) { 语句项; } 在文…

leetcode.707. 设计链表

题目 题意: 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化(serialization)在计算机科学的资料处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),…

MySQL数据库基础--事务

事务 是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 默认MySQL的事务是自动提交的,也就是说,当执行…

《C语言深度解剖》(2):详解C语言分支语句和循环

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多数据结构与算法点击专栏链接查看&am…

Node操作mysql

配置 安装mysql模块 npm i mysql建立连接 const mysql require(mysql);const db mysql.createPool({host: 127.0.0.1,user: root,password: admin123,database: my_db_01 });测试 // select 1没有任何实质性作用 只是检查mysql模块是否正常 db.query(select 1, (err, results…

修电机所需要的基本工具

等距式 模具 同心式模具 电机划线刀 压脚 千分尺 -----测量线径 钳形电流表------- 测量 空载 满载下的电流值 摇表, 测量线圈是否碰到外壳 指针式万用表 胶锤 整理线圈 绝缘纸和青稞纸&#xf…

RuoYi-Vue若依框架-vue前端给对象添加字段

处理两个字段的时候有需求都要显示在下拉框的同一行,这里有两种解决方案,一是后端在实体类添加一个对象,加注解数据库忽略处理,在接口处拼接并传给前端,二是在前端获取的数据数组内为每个对象都添加一个字段&#xff0…

Ethernet 汇总

Ethernet系统 硬件最小系统 CPU:可以是复杂的芯片,也可以是小的单片机DMA:用于减轻CPU负担,搬运数据系统Memory<->FIFOMAC:可以集成在芯片里面,用于CPU和PHY之间的通信MII:接口用于MAC和PHY的通信,包括控制MDIO和数据DataPHY:模拟器件,最底层,数据收发源头软件…