MySQL通过SSH备份SQL表和数据

时间:2015-06-16 18:08:24

标签: mysql bash shell ssh

我需要备份我的MySQL表。我可以通过SSH以root身份登录。我的所有桌子都在Plesk控制面板下。

mysql -uadmin -p`cat /etc/psa/.psa.shadow`

这会给我SQL提示。

然后我必须这样做:     显示数据库     使用dbname     显示表格

SELECT * INFO OUTFILE /tmp/filename.csv  FIELDS TERMINATED BY ',' OPTIONALLY  ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tablename;

将每个数据库上的每个表保存为csv文件是非常耗时的过程。我仍然无法将架构文件备份为.sql文件。

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT * from tablename" databasename | sed 's/\t/","/g;s/^/"/;s/$/"/' > /tmp/databasename_tablename.csv 

无法生成任何文件。我试过mysqldump,但我不知道每个数据库的每个用户名和密码。

如果有些人可以提供shell脚本来转储所有数据库表,那么架构会很棒。非常感谢。

1 个答案:

答案 0 :(得分:-1)

因为你是备用人员,所以创建一个具有足够凭据的backupGuy用户来执行所有db的任务

使用-u -p执行mysqldump

让我们假设你的非技术老板被迫坐下来观看你现在忍受的东西来备份东西。我敢打赌,她的第一反应就是,“因为爱的人会有人请你跑一个

CREATE USER 'backupGuy'@'192.168.2.7' IDENTIFIED BY 'my_password';

GRANT ALL PRIVILEGES ON *.* TO 'backupGuy'@'192.168.2.7';

结束语

您现在已经将数据和架构烘焙了。

mysqldump支持使用

转储存储的proc / triggers / functions

--routines --triggers 选项

与任何方法一样考虑锁定问题