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目录中还有其他数据库)。
在行之间阅读 - 这是一个innodb数据库吗?在这种情况下,实际数据通常以名称ibdata1存储在该目录中。除非您专门设置mysql以使用每个文件一个文件(innodb-file-per-table),否则此文件包含所有表
来自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系统中存储数据的地方。
至少在5.6版本中,MySQL Workbench中的Management选项卡显示它位于C:\驱动器中名为ProgramData的隐藏文件夹中。我的默认数据目录是
C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ data
。每个数据库都有一个文件夹,每个表都有一个文件。
我刚刚在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
。
在mysql server 8.0中,在Windows上,位置是C:\ProgramData\MySQL\MySQL Server 8.0\Data