在 Linux 系统中,MySQL 的数据目录(datadir)位置取决于安装方式、发行版以及 MySQL 版本(如 MySQL 或 MariaDB)。以下是查找数据目录的几种方法:
登录 MySQL 后执行以下命令:
SHOW VARIABLES LIKE 'datadir';
输出示例:
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
MySQL 的主配置文件通常是 my.cnf
或 my.ini
,路径可能包括:
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/etc/my.cnf
- ~/.my.cnf
- MariaDB 可能使用 /etc/mysql/mariadb.cnf
使用 grep
快速查找:
sudo grep -i "datadir" /etc/my.cnf /etc/mysql/my.cnf /etc/mysql/mariadb.cnf 2>/dev/null
如果 MySQL 正在运行,可以通过进程参数找到数据目录:
ps aux | grep mysql | grep -oP "datadir=\K[^ ]+" # 或
sudo cat /proc/$(pgrep mysqld | head -1)/cmdline | tr '\0' '\n' | grep datadir
常见发行版的默认路径:
- Debian/Ubuntu:
- MySQL: /var/lib/mysql/
- MariaDB: /var/lib/mysql/
- RHEL/CentOS:
- MySQL: /var/lib/mysql/
- MariaDB: /var/lib/mysql/
- Docker 容器:
- 通常为 /var/lib/mysql
,具体需检查容器配置。
sudo
权限访问某些配置文件或目录。mysql
或 mariadb
需有读写权限)。ls -l /var/lib/mysql
确认文件所有权。如果有其他环境细节(如 Docker、自定义编译安装),可进一步针对性排查。