mysql在哪里存储数据?
mysql在哪里存储数据?我发现(通过使用mysql>SELECT@@datadir)它在var/lib/mysql中,但不可能是这样。我有一个相当大的数据库(4GB),名为“bot”,但“bot”子目录(var/lib/mysql/bot)中的所有文件只有280KB。其余的在哪里 还有一件事——99%的数据库大小是其中一个表中的一个文本列——我知道mysql将其存储在单独的文件中,但它会为每个记录创建一个文件吗 我在var/lib/mysql目录中发现了一个名为ibdata1的大文件-它的大小超过8GB-它是什么?(顺便说一句,var/lib/mysql目录中还有其他数据库)。来自: 窗口mysql在哪里存储数据?,mysql,Mysql,mysql在哪里存储数据?我发现(通过使用mysql>SELECT@@datadir)它在var/lib/mysql中,但不可能是这样。我有一个相当大的数据库(4GB),名为“bot”,但“bot”子目录(var/lib/mysql/bot)中的所有文件只有280KB。其余的在哪里 还有一件事——99%的数据库大小是其中一个表中的一个文本列——我知道mysql将其存储在单独的文件中,但它会为每个记录创建一个文件吗 我在var/lib/mysql目录中发现了一个名为ibdata1的大文件-它的大小
C:\ProgramFiles\MySQL\MySQL Server 5.1\my.ini
“datadir”
,这是MySQL在Windows中存储数据的位置
Linux
my.cnf
文件:cat/etc/mysql/my.cnf
“datadir”
,这是MySQL在Linux系统中存储数据的地方在字里行间阅读-这是innodb数据库吗?在这种情况下,实际数据通常以ibdata1的名称存储在该目录中。此文件包含您的所有表,除非您专门设置mysql为每个表使用一个文件()至少在5.6版中,mysql Workbench中的管理选项卡显示它位于C:\驱动器中名为ProgramData的隐藏文件夹中。我的默认数据目录是 C:\ProgramData\MySQL\MySQL服务器5.6\data
。每个数据库都有一个文件夹,每个表在这里都有一个文件。我刚刚在
Windows 10
上安装了MySQL Server 5.7
,而my.ini
文件位于这里c:\ProgramData\MySQL\MySQL Server 5.7\my.ini
Data
文件夹(创建数据库的地方)在这里C:/ProgramData/MySQL/MySQL Server 5.7\Data
在MySQL Server 8.0中,在Windows上,位置是C:\ProgramData\MySQL\MySQL Server 8.0\Data
正如@PhilHarvey所说的,您可以使用mysqld--verbose--help
谢谢,但我相信你只读了我问题的标题,我完全按照你所描述的做了,但正如我在帖子中所写的:“mysql在哪里存储数据?我发现(通过使用mysql>SELECT@@datadir)它在var/lib/mysql中-但不可能是这样。我有一个相当大的数据库(4GB),名为‘bot’,但所有文件都在‘bot’子目录中(var/lib/mysql/bot)只有280KB。其余的在哪里?“所以找到数据目录并找到最大的文件或文件集,这并不难。另外,看看发布的另一个答案。正如我所写的,我找到了“ibdata1”文件,但它在主目录中,而不是在数据库的子目录中,所以我似乎不可能找到这个文件,而不是使用“查找”在整个文件系统上,您可以这样确定数据目录:mysqld--verbose--help | grep datadir您使用的是什么存储引擎?谢谢!事实上我忘了提到它是innodb。您说文件(ibdata1)“包含所有表”,但看起来它实际上包含所有数据库中的所有表?您知道这是否有原因吗?这似乎很愚蠢…还有一件事-我可以更改此选项吗(每个表的innodb文件)现在,当一个数据库已经存在并且包含记录时?是的,对不起,应该说所有数据库。这并不愚蠢,请看这里。只能通过停止mysql,更改选项,然后重新启动来更改此选项。对不起,但我从未尝试拆分innodb,我建议使用mysqldump备份数据库,更改选项,然后重新加载数据库。谢谢!我一定会这样做。使用此选项,我能够解决“mysql.connector.errors.DatabaseError:1007(HY000)”。
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/"
yongmo@myserver:~$ find / -name my.cnf
find: /home/lost+found: Permission denied
find: /lost+found: Permission denied
/etc/mysql/my.cnf
yongmo@myserver:~$ cat /etc/mysql/my.cnf
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking