Mysql的物理文件

news2024/11/15 9:34:07

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;--清空所有的二进制文件

错误:

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

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【刷题】代码随想录算法训练营第二天| 977. 有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

目录 977、有序数组的平方双指针法 209、长度最小的子数组滑动窗口 59、螺旋矩阵II 977、有序数组的平方 文档讲解:https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html 视频讲解:https://…

揭秘AI幻觉:GPT-4V存在视觉编码漏洞,清华联合NUS提出LLaVA-UHD

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 GPT-4V 的推出引爆了多模态大模型的研究。GPT-4V 在包括多模态问答、推理、交互在内的多个领…

PCL 点到三角形的距离(3D)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 给定三角形ABC和点P,设Q为描述ABC上离P最近的点。求Q的一个方法:如果P在ABC内,那么P的正交投影点就是离P最近的点Q。如果P投影在ABC之外,最近的点则必须位于它的一条边上。在这种情况下,Q可以通过计算线段AB、…

串口和 蓝牙模块HC08

串口基本认知 串行接口简称串口,也称 串行通信 接口或 串行通讯接口 (通常指 COM 接口 ),是采用串行通信方 式的 扩展接口 。串行 接口(Serial Interface )是指数据一位一位地顺序传送。其特点是 通信线路…

Successive Convex Approximation算法的学习笔记

文章目录 一、代码debug二、原理 本文主要参考了CSDN上的 另一篇文章,但规范了公式的推导过程和修缮了部分代码 一、代码debug 首先,我们将所有的代码放到MATLAB中,很快在命令行中出现了错误信息 很显然有问题,但是我不知道发生…

剪映国际版 v3.7 来了,全功能纯净,附400套离线模板下载

剪映国际版 v3.7 来了,全功能纯净,附400套离线模板下载 相比国内版 国际版不仅没有广告,所有素材和功能都是免费使用的。 CapCut是剪映的国际版本,操作和各种功能几乎和剪映一模一样, 是一款免费无限制使用的视频剪辑软件,软件…

极客时间: 用 Word2Vec, LangChain, Gemma 模拟全本地检索增强生成(RAG)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Linux中安装nacos

Linux中安装nacos 一、前言二、准备1、下载2、上传到服务器3、解压 三、配置1、备份配置文件2、导入sql3、修改前4、修改后 四、使用1、启动2、关闭 一、前言 最近国外的docker似乎是出什么问题,试过很多手段都拉不下 nacos 镜像,就打算在服务器装一下 …

二. CUDA编程入门-双线性插值计算

目录 前言0. 简述1. 执行一下我们的第十个CUDA程序2. Bilinear interpolation3. 代码分析总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 Note:关于 CUDA 加速双线程插值的内容博主…

golang slice总结

目录 概述 一、什么是slice 二、slice的声明 三、slice的初始化、创建 make方式创建 创建一个包含指定长度的切片 创建一个指定长度和容量的切片 创建一个空切片 创建一个长度和容量都为 0 的切片 new方式创建 短声明初始化切片 通过一个数组来创建切片 声明一个 …

Coursera上托福专项课程01:TOEFL Reading and Listening Sections Skills Mastery 学习笔记

TOEFL Reading and Listening Sections Skills Mastery Course Certificate 本文是学习 https://www.coursera.org/learn/toefl-reading-listening-sections-skills-mastery 这门课的笔记,如有侵权,请联系删除。 文章目录 TOEFL Reading and Listening …

【微服务】面试题(一)

最近进行了一些面试,这几个问题分享给大家 一、分别介绍一下微服务、分布式以及两者的区别 微服务(Microservices)和分布式系统(Distributed Systems)是两种不同的软件架构风格,虽然它们之间有些重叠&#…

SV学习笔记(五)

文章目录 线程的使用程序和模块什么是线程线程的概念澄清 线程的控制fork并行线程语句块fork…joinfork…join_any等待所有衍生线程停止单个线程停止多个线程停止被多次调用的任务 线程的通信写在前面event事件通知的需求semaphore旗语mailbox信箱三种通信的比较和应用 参考资料…

探索数据结构:特殊的双向队列

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 双向队列的定义 **双向队列(double‑ended queue)**是一种特殊的队列…

[羊城杯 2020]Easyphp2 ---不会编程的崽

摆烂一周了,继续更!!题目还是简单哦。 提示明显要我们修改数据包,第一反应是修改referer。试了一下不太对。url很可能存在文件包含 使用伪协议读取一下源码吧。它过滤了base64关键字。尝试url编码绕过,这里可以使用二…

实景三维技术在推进城市全域数字化转型的作用

4月2日,国家数据局发布《深化智慧城市发展推进城市全域数字化转型的指导意见(征求意见稿)》(下称:《指导意见》),向社会公开征求意见。 《指导意见》作为推进城市数字化转型的重要文件&#xf…

11、子串-滑动窗口最大值

题解: 双端队列是一种特殊的队列,允许你在队列的两端进行插入和删除操作。在滑动窗口问题中,我们使用它来存储可能是当前窗口最大值的元素的索引。 维护队列的顺序: 当新元素进入窗口时,我们将它与队列尾部的元素进…

echarts 毕节区县地图 包含百管委、高新区 (手扣)

百度网盘 链接:https://pan.baidu.com/s/14yiReP8HT_bNCGMOBajexg 提取码:isqi

MQ简介和面试题

一,什么是MQ MQ全称是Mwessage Queue(消息队列),是在消息传输过程中保存消息的容器,多用于分布式系统之间进行通信,解耦和低耦合性 二,常见的MQ产品 RebbitMQ,RocketMQ, ActiveMQ, Kafka, ZeroMQ, MetaMQ 其中我们…

(学习日记)2024.04.06:UCOSIII第三十四节:互斥量函数接口讲解

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…