mysql - 如何在数据库中创建Service Builder的表?

标签 mysql service builder

我已从 (MySQL) 数据库中删除了我的服务表。现在有 portlet 错误消息表明表不存在。如何开始休闲?我从未手动创建过服务表。它们是自动创建的,但现在已停止。

* 更新 *

上面我的意思是我的自定义 portlet 项目的自定义表。我有它们的 SQL 文件,当然可以在服务器上运行它们,但想知道通常应该如何完成?

最佳答案

你还有安装文件吗?如果是这样,请在其中搜索表名。在 Linux 上,这将类似于

find /path/to/top/directory -type f -print0 | xargs -0r grep -il 'CREATE TABLE Xyz'

其中Xyz是您要查找的表名。对于它列出的每个文件,搜索 CREATE TABLE XyzCREATE TABLE IF NOT EXISTS Xyz。这应该找到丢失表的“创建”语句。如果该表也有针对它的触发器,则需要进一步的工作。

如果您没有安装文件,但有所有二进制日志,则可以使用以下命令搜索(同样在 Linux 中)

find /path/to/binlogs -type f -print0 \
| \
xargs -0r file \
| \
fgrep 'MySQL replication log' \
| \
cut -d: -f1 \
>/tmp/binlog.lst
for b in $(</tmp/binlog.lst); do
    echo -n $b
    mysqlbinlog $b | grep -li 'CREATE TABLE Xyz'
    echo
done

但即使这些方法中的任何一种有效,它也只能为您提供原始的“创建”语句。如果该表在安装或升级中有“更改表”,则需要额外搜索。

如果没有备份,我认为您最好的选择是重新安装相同版本的 Service Builder,然后将生成的表复制到当前的安装中。

在继续之前,请备份当前拥有的内容,例如通过 mysqldump --opt --all-databases >large_dump_file

关于mysql - 如何在数据库中创建Service Builder的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180615/

相关文章:

java - 如何通过 Spring 注释使用构建器模式

python - 不确定在 Python 中将多个变量传递给 sql 查询的语法是否正确

mysql - 我怎样才能完全复制我的sql数据库?

MySQL 将 Oracle Pl/SQL (+) 转换为 MySQL

.net - 通过 .Net 中的 Web 服务调用维护 SQL 事务

java - Lombok 构建器包范围

android - 从 AsyncTask 调用 AlertBuilder 时出现异常

sql - 性能不佳的 Mysql 子查询——我可以将其转换为 Join 吗?

Delphi:我可以从服务启动短应用程序吗?

c# - Windows 服务总线 - 多个接收器