linuxqt连接dm数据库无响应

linuxqt连接dm数据库无响应,第1张

首先,确认linuxgt连接dm数据的所有配置,包括服务器地址、端口、用户名、密码等是否都正确。如果配置正确,可以尝试在linuxgt服务器上使用telnet命令测试dm数据库的端口是否可用,如果可以,则证明端口是可用的。如果端口不可用,则需要检查dm数据库服务器上的防火墙配置,确保它没有禁止linuxgt服务器的连接。此外,还可以尝试登录dm数据库的控制台,查看是否已经允许linuxgt服务器的连接,如果没有,则需要添加一个允许linuxgt服务器的规则。

错误1465“无法在系统表上创建触发器".从mysqldump创建的SQL还原后

[英] ERROR 1465 "Triggers can not be created on system tables" after restore from SQL created by mysqldump

查看:1229 发布时间:2020/5/15 5:11:46 mysql mysqldump rds

仅需 5 分钟,数据变图表。众多数据可视化大屏模板等你来选。开源,人人可用。

广告

本文介绍了错误1465“无法在系统表上创建触发器".从mysqldump创建的SQL还原后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Amazon RDS上运行mysql 5.6服务器,并设置了一个只读副本,该副本用于使用mysqldump创建备份.

我尝试使用"--all-databases"选项,但是当我尝试导入mysqldump创建的SQL时,最终从mysql命令客户端收到此错误:

ERROR 1465 "Triggers can not be created on system tables"

我使用了"--all-databases",因为我基本上想还原RDS中的所有内容,以防发生崩溃.

也许这是错误的,我应该只选择我的模式(加上mysql.users表)?但是,如果"--all-databases"永远无法工作,那么它首先是什么呢?还是我使用错了?

推荐答案

在与Amazon支持小组进行了较长的交谈之后,这是我想出的:

可以通过将mysql配置临时设置为log_bin_trust_function_creators设置为1来解决触发问题

他们不建议拍摄完整快照,而是选择单个数据库.

这意味着您必须在恢复中执行两个步骤:

创建架构

创建用户并授予他们必要的权限

导入转储的数据

使用视图,您可能会遇到错误消息

With views, you might run into the error message

第12行的错误1227(42000):访问被拒绝;您需要(至少其中一种)SUPER权限才能进行此 *** 作

之所以显示它,是因为mysqldump在create视图中创建了一个definer语句(甚至您的root用户也没有足够的权限来设置该语句).如此处所述,摆脱它们的唯一方法是过滤,即过滤我喜欢这样:

sed -i's/^/.. 50013 DEFINER =.* SQL安全定义器.. $/-删除了安全定义器语句/g'

令人尴尬,需要大量的手动工作才能从RDS中取出数据库备份,然后又将其恢复.在任何情况下,您都应该依靠备份来进行备份只能由RDS自动制作,因为那些可以访问您的AWS帐户的恶意攻击者可以轻松删除它们.

这篇关于错误1465“无法在系统表上创建触发器".从mysqldump创建的SQL还原后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

可以使用QT自带的数据库完成 *** 作,以下是参考代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE")   //添加数据库

db.setDatabaseName("note.db")    //创建一个note.db的文件存储数据

db.open()  //开启数据库

query = QSqlQuery(db) //获得访问数据库的query

query.exec(XXX)  //执行指令(XXX为SQL指令)

db.close()  //关闭数据库

一般而言会将db变量作为全局变量或者数据成员,当需要访问的时候就获取一个query就可以了。

要实现所提到的功能,要好好看看QString、QStringList,这两玩意主要是临时存放数据、分割数据等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,这四个主要用来读取文本数据。看看QVector或者QList等来存放读出来的数据。

另外,要实现这玩意,SQL的语句不要求精通,但是基本的Create、Insert、Select、Delete等 *** 作要准确无误。否则出错了QT是看不出来的。QT不会检测SQL的准确性的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9605352.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存