首页 > 解决方案 > mysql 从 linux 终端转储到每个表的单独文件中

问题描述

我正在尝试从 linux 终端备份数据库中的表。我正在使用以下脚本来执行此操作

GIT_MYSQL=/data/database/location to store
for T in `mysql -u [user] -h [Hostname] -p [database] -N -B -e 'show tables from database_name'`;
do
    echo "Backing up $T"
    mysqldump --skip-comments --compact -u [user] -p [password] [database] $T > $GIT_MYSQL/$T.sql
done;

我收到以下错误: mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect My mysql.sock is not present in文件夹

标签: mysqllinux

解决方案


您需要-h [Hostname]to 选项mysqldump,否则它将尝试从本地数据库而不是您从中获取表列表的远程服务器转储。

并且要在命令行上提供密码而不是提示输入密码,您需要使用--password=[password]or -p[password]; 密码前不能有空格。

mysqldump --skip-comments --compact -u [user] -h [Hostname] -p'[password]' [database] $T > $GIT_MYSQL/$T.sql

推荐阅读