![在哪里可以找到数据库文件和表文件?](https://linux22.com/image/596476/%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93%E6%96%87%E4%BB%B6%E5%92%8C%E8%A1%A8%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我安装了MySQL的使用 :
yum install mysql-server
它在终端上运行良好。我创建了一个名为音乐并在该数据库中创建了一些表。现在我想将整个数据库移植到其他机器上。我该怎么做?
一般来说,我可以在哪里找到数据库文件和表文件?我通过关键字搜索了很多次音乐但找不到它。
答案1
现在我想将整个数据库移植到其他机器。我该怎么做?
mysqldump -u root -p music | mysql -u root -p -h <other.machine.ip.addr>
一般来说我可以在哪里找到数据库文件和表文件?
它们位于datadir
MySQL 的:
ls $(awk -F= '/datadir/ { print $2 }' /etc/my.cnf)
答案2
在 Debian 中,数据库存储在 /var/lib/mysql 中。要移植它们,您可以mysqldump -A -u root -p > dumpfile
通过复制文件夹在新机器上使用和恢复它们mysql -u root -p < dumpfile
(传输后不要忘记更改文件的权限)。
答案3
取决于您使用的 SQL 引擎类型。可能是 InnoDB,它将所有数据库存储在几个文件中(通常是 /var/lib/mysql/ibdata*)。因此,对于备份,您将需要使用mysqldump
。
为了备份使用类似的东西:
mysqldump --hex-blob -u${BUSER} -p${BPASS} ${database} -r ${BACKUP_DIR}/${database}.mysql
为了恢复在另一台机器上复制 ${BACKUP_DIR}/${database}.mysql 并执行:
mysql -u${BUSER} -p ${database} < ${database}.mysql
当然,不要忘记先创建空数据库CREATE DATABASE name
。另外,正如已经建议的那样,您可以使用-A
with mysqldump
,但这将转储所有数据库。