mysql在哪里存储数据?

时间:2014-10-16 11:08:53

标签: mysql

mysql在哪里存储数据?我发现(通过使用mysql> SELECT @@ datadir)它在var / lib / mysql中 - 但这不可能。我有一个非常大的数据库(4 GB),称为'bot',但'bot'子目录中的所有文件(var / lib / mysql / bot)只有280KB。其余的在哪里?

还有一件事 - 数据库大小的99%是其中一个表中的文本列 - 我知道mysql将它存储在单独的文件中,但它是否会为每个记录创建一个文件?

我在var / lib / mysql目录中找到了一个名为ibdata1的大文件 - 它的大小超过8GB - 它是什么? (顺便说一句,var / lib / mysql目录中还有其他数据库)。

6 个答案:

答案 0 :(得分:33)

来自here

<强>窗

1)找到存储在MySQL安装文件夹中的my.ini。

例如,C:\Program Files\MySQL\MySQL Server 5.1\my.ini

2)用我们喜欢的文本编辑器打开“my.ini”。

#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/"

找到“datadir”,这是MySQL在Windows中存储数据的地方。


<强>的Linux

1)使用find / -name my.cnf命令找到my.cnf。

yongmo@myserver:~$ find / -name my.cnf
find: /home/lost+found: Permission denied
find: /lost+found: Permission denied
/etc/mysql/my.cnf

2)查看my.cnf file cat /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

3)找到“datadir”,这就是MySQL在Linux系统中存储数据的地方。

答案 1 :(得分:17)

在行之间阅读 - 这是一个innodb数据库吗?在这种情况下,实际数据通常以名称ibdata1存储在该目录中。此文件包含所有表,除非您专门设置mysql以使用每个表一个文件(innodb-file-per-table

答案 2 :(得分:11)

至少在5.6版本中,MySQL Workbench中的Management选项卡显示它位于C:\驱动器中名为ProgramData的隐藏文件夹中。我的默认数据目录是

  

C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ data

。每个数据库都有一个文件夹,每个表都有一个文件。

答案 3 :(得分:1)

我刚刚在MySQL Server 5.7上安装了Windows 10,而my.ini文件位于c:\ProgramData\MySQL\MySQL Server 5.7\my.ini

Data文件夹(创建dbs的位置)位于C:/ProgramData/MySQL/MySQL Server 5.7\Data

答案 4 :(得分:0)

正如@PhilHarvey 所说,您可以使用 mysqld --verbose --help | grep datadir

答案 5 :(得分:-1)

在Windows上的mysql服务器8.0中,位置为C:\ProgramData\MySQL\MySQL Server 8.0\Data