Mysql Data丢失了问题 [英] Mysql Data lost problem

查看:63
本文介绍了Mysql Data丢失了问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮我吗?



我的问题是昨天我在mysql中插入了数据。 mysql中的数据是55个字段中22,000条记录的堆肥,当我今天检查数据时它会丢失吗?怎么会发生?我该怎么办呢?问题出在网络连接上,因为我在局域网上?我希望有人帮助我。



这是我的代码





Can someone help me with this?

My question is that yesterday i inserted data in mysql. the data in mysql is compost of 22,000 records in 55 fields and when i check the data today it is lost? how does it happen? how can i fix it? does the problem is in network connection because im on a lan? i hope someone help me.

here is my code


<pre lang="sql">Dim importantmessage As String
               importantmessage = MsgBox("ALL DATA COMPLETED, DO YOU WANT TO SAVE THIS?", vbYesNo)
               If importantmessage = vbYes Then
                   MaskedTextBox20.Text = DatePicker1.Text
                   Dim con As MySqlConnection = New MySqlConnection("server=192.168.1.1;Port=3306;Database=sginfo ;Uid=root;Pwd=sample;")
                   Dim cmdinsert As MySqlCommand = New MySqlCommand("INSERT INTO personinfo(surname,firstname,middlename,present_currentaddress,provincialaddress,noofchildren,height,weight,birthdate,age,birthplace,gender,civilstatus,educationalattain,schoolname,course,yearsofstudy,collegestatus,trainingschoolname,positiontrained,yearstrained,coursetrained,detachment,region,effdate,workstatus,empnumber,positionemployed,yearsofemployed,sssnumber,tinnumber,nbi,nbidate,pnp,pnpdate,priorexp,gdexp,guardposition,uniformdate,millitary,los,previousemp,licno,licdate,licexp,dateofemp,badgeno,neurocenter,neuroresult,neurodate,drugcenter,marijuana,shabu,drugresult,agency,histories,agepattern,depend,phil,pagibig) VALUES (@SurName,@FirstName,@MiddleName,@Present_CurrentAddress,@ProvincialAddress,@Noofchildren,@Height,@weight,str_to_date(birthdate,'%d-%m-%Y'),@age,@birthplace,@gender,@civilstatus,@educationalattain,@schoolname,@course,@yearsofstudy,@collegestatus,@trainingschoolname,@positiontrained,@yearstrained,@coursetrained,@detachment,@Region,str_to_date(@effdate,'%d-%m-%Y'),@workstatus,@empnumber,@positionemployed,@yearsofemployed,@sssnumber,@tinnumber,@nbi,@nbidate,@pnp,@pnpdate,@priorexp,@gdexp,@guardposition,@uniformdate,@millitary,@LOS,@previousemp,@licno,@licdate,@licexp,@dateofemp,@badgeno,@neurocenter,@neuroresult,@neurodate,@drugcenter,@marijuana,@shabu,@drugresult,@histories,@agency,@agepattern,@depend,@phil,@pagibig);")
                   cmdinsert.Parameters.AddWithValue("surname", txtsurname.Text)
                   cmdinsert.Parameters.AddWithValue("firstname", txtfirstname.Text)
                   cmdinsert.Parameters.AddWithValue("middlename", txtmiddlename.Text)
                   cmdinsert.Parameters.AddWithValue("present_currentaddress", txtaddress.Text)
                   cmdinsert.Parameters.AddWithValue("provincialaddress", txtprovince.Text)
                   cmdinsert.Parameters.AddWithValue("noofchildren", txtchildren.Text)
                   cmdinsert.Parameters.AddWithValue("height", txtheight.Text)
                   cmdinsert.Parameters.AddWithValue("weight", txtweight.Text)
                   cmdinsert.Parameters.AddWithValue("birthdate", DatePicker1.Text)
                   cmdinsert.Parameters.AddWithValue("age", txtage.Text)
                   cmdinsert.Parameters.AddWithValue("birthplace", txtbplace.Text)
                   cmdinsert.Parameters.AddWithValue("gender", cmbgender.Text)
                   cmdinsert.Parameters.AddWithValue("civilstatus", cmbcivil.Text)
                   cmdinsert.Parameters.AddWithValue("educationalattain", ComboBox4.Text)
                   cmdinsert.Parameters.AddWithValue("schoolname", TextBox11.Text)
                   cmdinsert.Parameters.AddWithValue("course", TextBox10.Text)
                   cmdinsert.Parameters.AddWithValue("yearsofstudy", TextBox9.Text)
                   cmdinsert.Parameters.AddWithValue("collegestatus", TextBox8.Text)
                   cmdinsert.Parameters.AddWithValue("trainingschoolname", TextBox6.Text)
                   cmdinsert.Parameters.AddWithValue("positiontrained", ComboBox3.Text)
                   cmdinsert.Parameters.AddWithValue("yearstrained", TextBox7.Text)
                   cmdinsert.Parameters.AddWithValue("coursetrained", TextBox1.Text)
                   cmdinsert.Parameters.AddWithValue("detachment", ComboBox2.Text)
                   cmdinsert.Parameters.AddWithValue("region", ComboBox7.Text)
                   cmdinsert.Parameters.AddWithValue("effdate", maskedtextbox3.Text)
                   cmdinsert.Parameters.AddWithValue("workstatus", ComboBox1.Text)
                   cmdinsert.Parameters.AddWithValue("empnumber", TextBox29.Text)
                   cmdinsert.Parameters.AddWithValue("positionemployed", TextBox30.Text)
                   cmdinsert.Parameters.AddWithValue("yearsofemployed", TextBox31.Text)
                   cmdinsert.Parameters.AddWithValue("sssnumber", TextBox5.Text)
                   cmdinsert.Parameters.AddWithValue("tinnumber", TextBox4.Text)
                   cmdinsert.Parameters.AddWithValue("nbi", TextBox3.Text)
                   cmdinsert.Parameters.AddWithValue("nbidate", textbox58.Text)
                   cmdinsert.Parameters.AddWithValue("pnp", TextBox2.Text)
                   cmdinsert.Parameters.AddWithValue("pnpdate", maskedtextbox5.Text)
                   cmdinsert.Parameters.AddWithValue("priorexp", TextBox24.Text)
                   cmdinsert.Parameters.AddWithValue("gdexp", TextBox25.Text)
                   cmdinsert.Parameters.AddWithValue("guardposition", ComboBox11.Text)
                   cmdinsert.Parameters.AddWithValue("uniformdate", maskedtextbox6.Text)
                   cmdinsert.Parameters.AddWithValue("millitary", TextBox26.Text)
                   cmdinsert.Parameters.AddWithValue("LOS", TextBox28.Text)
                   cmdinsert.Parameters.AddWithValue("previousemp", TextBox27.Text)
                   cmdinsert.Parameters.AddWithValue("licno", TextBox32.Text)
                   cmdinsert.Parameters.AddWithValue("licdate", maskedtextbox2.Text)
                   cmdinsert.Parameters.AddWithValue("licexp", maskedtextbox1.Text)
                   cmdinsert.Parameters.AddWithValue("dateofemp", maskedtextbox7.Text)
                   cmdinsert.Parameters.AddWithValue("badgeno", TextBox12.Text)
                   cmdinsert.Parameters.AddWithValue("neurocenter", TextBox14.Text)
                   cmdinsert.Parameters.AddWithValue("neuroresult", ComboBox6.Text)
                   cmdinsert.Parameters.AddWithValue("neurodate", maskedtextbox8.Text)
                   cmdinsert.Parameters.AddWithValue("drugcenter", TextBox15.Text)
                   cmdinsert.Parameters.AddWithValue("marijuana", ComboBox5.Text)
                   cmdinsert.Parameters.AddWithValue("shabu", ComboBox12.Text)
                   cmdinsert.Parameters.AddWithValue("drugresult", maskedtextbox9.Text)
                   cmdinsert.Parameters.AddWithValue("histories", RichTextBox1.Text)
                   cmdinsert.Parameters.AddWithValue("agency", combobox21.Text)
                   cmdinsert.Parameters.AddWithValue("agepattern", MaskedTextBox20.Text)
                   cmdinsert.Parameters.AddWithValue("depend", TextBox59.Text)
                   cmdinsert.Parameters.AddWithValue("phil", TextBox60.Text)
                   cmdinsert.Parameters.AddWithValue("pagibig", TextBox61.Text)

                   cmdinsert.CommandType = CommandType.Text
                   cmdinsert.Connection = con
                   con.Open()
                   cmdinsert.ExecuteNonQuery()
                   MsgBox("Information, Successfully saved")

推荐答案

让我举个例子来检查插入的数据是否存在,我们决定每天检查一下例如:



星期一:数据已保存

星期二:插入的数据存在

星期三:插入的数据存在

星期四:插入的数据存在

星期五:数据丢失




那不是那个代码:要么你的代码有一个删除记录的部分,或你应用程序外部的东西。



检查你的代码:找到可以删除记录的所有地方并检查每一个你有这个时间它有一个WHERE子句 - 因为如果没有,它会很乐意删除数据库中的每一条记录!

如果它是外部的,那么你的代码就不会显示任何内容。



但是......我从日志开始: http://dev.mysql.com/doc/refman/5.0/en/server-logs.html [ ^ ] - 虽然有一个好的loog,看看是否有任何命令删除,shoudl帮助您找到源。

如果您使用了特定于任务的登录ID,那将更容易找到:如果所有应用程序都以root身份登录,那么他们所有人都拥有对DB的完全访问权限,日志只会显示root删除了记录。如果可以,请设置单独的用户,这些用户仅限于他们完成工作所需的权限 - 这意味着记录的信息至少会告诉您哪个用户(以及哪个应用程序)删除了记录。



开始挖掘的时间!
"let me give you an example to check that the data inserted exist, we decided to have a daily check for example:

Monday: Data has been saved
Tuesday: Inserted data exist
Wednesday: Inserted data exist
Thursday: Inserted data exist
Friday: Data is lost"


It's not that code then: either your code has a section which deletes records, or something external to you application has done it.

Check your code: find everywhere that can delete records and check that every single time you do it it has a WHERE clause - because if it doesn't, it will happily delete every record in the DB!
If it's something external, then your code won't show anything.

But...I'd start with the Logs: http://dev.mysql.com/doc/refman/5.0/en/server-logs.html[^] - have a good loog though and see if any commands are "wild" deletes, which shoudl help you locate the source.
It would have been easier to locate if you had used task-specific login IDs though: if all you apps are logging in as "root" then they all have total access to the DB and the log will only show that "root" deleted the records. If you can, set up separate users who are restricted to just the permissions they require to do their job - this means that logged info would at least tell you exactly which user (and hence which application) deleted the records.

Time to start digging!


这篇关于Mysql Data丢失了问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆