我正在使用Mysql后台数据库运行MsAccess,今天我遇到了一些问题.
根据我可以进入程序的程度,我可以获得所有名称和条目的列表.但是一旦我进入任何条目的编辑形式,我会得到各种各样的结果.有时我很幸运,我可以看到第一个条目.但是之后的任何条目总是会得到一个MsAccess错误:对象无效或不再设置,然后任何后续调用将产生Mysql服务器的Mysql ODBC错误已经消失.
我查看了几个网站,甚至所有堆栈溢出网站都有相同的问题,我尝试了各种解决方案.(请记住,此数据库已运行多年,这是我第一次收到此消息)它还需要大约2m14s到2m59s才能显示任何错误消息.
这是我到目前为止尝试的内容:
这里:
set-variable = max_connections=500
safe-show-database
log-error=/var/log/mysqld.log
connect_timeout=1000
interactive_timeout=28800
wait_timeout=288000 <**This was changed**
join_buffer_size=6M
key_buffer_size=300M <**THIS WAS CHANGED **
max_allowed_packet=300M <**THIS WAS CHANGED **
myisam_sort_buffer_size=300M <**THIS WAS CHANGED **
read_buffer_size=6M
sort_buffer_size=6M
table_cache=12288
thread_cache_size=24
tmp_table_size=132M
query_cache_limit=3M
query_cache_size=64M
query_cache_type=1
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试了到目前为止我能找到的每一个建议,我似乎无法弄清楚问题.
我也看了一下MYSQL:已经消失了 如果我在那里查看项目符号列表
我认为这是一个很难弄清楚的错误,因为我已经筋疲力尽了:/我可能错过了一些信息,但我不确定还有什么要包含的.
- -编辑 - -
谢谢大家的意见,我还在调试这个问题.似乎并非所有形式都会导致某些问题.所以我开始认为这是一个MSAccess问题,而不是MySql问题.打破全部的表单在其VBA代码中具有相同的行:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If Screen.ActiveControl.Name = "UnboundTextBox" Then
Response = acDataErrContinue
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我不记得把这个代码放进去,所以我认为它是一个自动的东西,但我仍然会通过我的所有表单来查看哪些导致此错误,哪些不会.少数几个.
---今天我正在做一些调试试图从我可以集合的任何日志中找到我能做的任何事情----
MSACCESS 17ec-b10 EXIT SQLStatisticsW with return code -1 (SQL_ERROR)
HSTMT 0AF82920
WCHAR * 0x00000000 [ -3] <empty string>
SWORD -3
WCHAR * 0x00000000 [ -3] <empty string>
SWORD -3
WCHAR * 0x0013AAE8 [ -3] "location\ 0"
SWORD -3
UWORD 1 <SQL_INDEX_ALL>
UWORD 0 <SQL_QUICK>
DIAG [08S01] [MySQL][ODBC 3.51 Driver][mysqld-5.0.92-community]Lost
connection to MySQL server during query (2013)
Run Code Online (Sandbox Code Playgroud)
-----------------------------最终编辑------------------- -------
在过去一周左右,我的老板一直在努力为我们的办公室安装新的内部服务器.我们还多次切换IP和ISP提供商.事实证明,他为我创建了一个行政噩梦,因为我试图调试服务器的问题,以及软件问题等等...当问题出现在ISP提供商使用路由器设置建立的设置中时等等......所以基本上这个问题基本上是服务器,软件和硬件之间没有问题.
所以现在,我必须向后设计我所做的一切,并尝试让它在两个ips上工作.它现在适用于重要的一个.但它不适用于旧的...所以我想我只需要解决这个问题.[在空中挥舞着想象中的拳头]哈哈
问题是连接超时。您无法在 ODBC 级别更改此设置。我的 MySQL 提供商将超时设置为 30 秒(您可以在我运行 PassThrough 查询“SELECT @@wait_timeout”时了解您的设置)。我通过使用简单的表单每 10 秒轮询一次连接来解决这个问题。这使连接保持活动状态。确保您有一个可以打开表单的 AutoExec 宏。
Private Sub Form_Open(Cancel As Integer)
Me.TimerInterval = 1000 ' 10 seconds
End Sub
Private Sub Form_Timer()
Me.Requery
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6407 次 |
| 最近记录: |