在 MySql 上恢复 SQL 转储时记录错误和警告

在 MySql 上恢复 SQL 转储时记录错误和警告

如何在 MySQL 上恢复 SQL 转储时记录错误和警告?

以下是我们正在执行的步骤。

mysql> CREATE DATABASE dbname;

mysql> USE dbname;

mysql> SOURCE dbdumpname.sql 

答案1

要将 MySQL 错误和警告重定向到日志文件,请从 bash 而不是从 MySQL 提示符恢复 SQL 转储。

mysql -u root -p db_name < dumpfilename.sql > /var/tmp/mysqldump.log 2>&1

如果需要抑制外键检查,请创建一个名为的shell脚本mysql-import.sh,并在其中写入以下内容:

#!/bin/bash

mysql -u root -p'password' -h hostname db_name << EOF

CREATE DATABASE dbname;
USE dbname;
SET foreign_key_checks=0;
SOURCE dbdumpname.sql;

EOF

然后chmod +x mysql-import.sh使脚本可执行并以如下方式运行该脚本,

./mysql-import.sh > /var/log/mysqldump.log 2>&1

该脚本将运行您在 MySQL 中运行的代码,但具有将输出重定向到日志文件的能力,因为它可以从 shell 调用。

答案2

mysql 客户端提供了一个有用的--tee <tofile>选项。可以在启动时启用它,也可以在提示符中以交互方式启用它。

mysql> tee file.log
Logging to file 'file.log'
mysql> \W
Show warnings enabled.
mysql> use database;
mysql> source dump.sql;

请注意文档

屏幕上显示的所有数据都附加到给定的文件中。[..] Tee 功能仅在交互模式下有效。

相关内容