mysql - 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文件夹
解决方案
您需要-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
推荐阅读
- java - 没有找到类“package.Generated_for_debugger_class ...”
- c# - Visual Studio 2017 的智能设备开发
- events - ExtJS 6:TreePicker 不会触发更改事件
- bluez - 如何使用 btgatt-client 命令行工具
- c++ - 使用 GpuMat 和 Caffe
- python - 错误的字符串格式?
- java - 非守护线程输出有时会消失,直到使用 join()
- python - 从 Python 中的不同模块调用方法时出现 NameError
- javascript - 动态轮播(jQuery)不起作用
- javascript - 制作一个动态/掩码变量?