|
You last visited: Today at 09:11
Advertisement
Anyshop Fehler
Discussion on Anyshop Fehler within the Metin2 Private Server forum part of the Metin2 category.
10/17/2017, 16:55
|
#16
|
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,813
|
PHP Code:
user = user or ql.mysql["user"] pass = pass or ql.mysql["pass"] ip = ip or ql.mysql["ip"] if user ~= '' and user ~= nil then pre = pre..' -u'..user end if pass ~= '' and pass ~= nil then pre = pre..' -p'..pass end if db ~= '' and db ~= nil then pre = pre..' -D'..db end if ip ~= '' and ip ~= nil then pre = pre..' -h'..ip end
da auch angepasst?
Ansonsten versuch mal ne andere version der mysql_query funktion zu benutzen, gibt da eine die liest das pw, den user usw, aus der config aus, da entsteht so ein fehler ganz sicher nicht.
mfg
|
|
|
10/17/2017, 19:47
|
#17
|
elite*gold: 11
Join Date: Nov 2012
Posts: 256
Received Thanks: 168
|
Macht ja eigentlich kein Sinn, da er es ja von hier
Code:
local ql = {
["user"] = "root",
["pass"] = "*****",
["ip"] = "localhost",
["db"] = "player"
ausliest.
Die eigentliche mysql_query Funktion die benutzt wird ist ja die :
Code:
mysql_query = function(query)
math.randomseed(os.time())
local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
os.execute('mysql --login-path=local -e'..string.format('%q',query)..' > '..fi)
for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
for i = 2, table.getn(t) do
table.foreach(t[i],function(a,b)
out[i-1] = out[i-1] or {}
out[i-1][a] = tonumber(b) or b or 'NULL'
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = tonumber(b) or b or 'NULL'
end)
end
out.__lines = t[1]
return out
end
Denke mal das bei der die daten ausgelesen werden, aber in den configs habe ich keine Daten eingetragen, sieht bei mir so aus:
Code:
PLAYER_SQL: localhost user pw player
COMMON_SQL: localhost user pw common
LOG_SQL: localhost user pw log
Sollte ich hier localhost, user, und pw mal ersetzen?
|
|
|
10/17/2017, 23:30
|
#18
|
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,813
|
ja macht sinn
Ja du kannst mal versuchen das pw in den configs zu ändern nur fragt sich halt in was für eines. Und vergiss dann nicht das pw in der mysql datenbank anzupassen.
mfg
|
|
|
10/18/2017, 09:01
|
#19
|
elite*gold: 11
Join Date: Nov 2012
Posts: 256
Received Thanks: 168
|
Also ich hab jetzt alle Möglichen mysql passwörter durchprobiert und in die configs eingetragen.
Hat leider alles nichts gebracht...
|
|
|
10/18/2017, 12:26
|
#20
|
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,813
|
ersetze mal den inhalt deiner funktion mit dem da
PHP Code:
mysql_query = function(query) if not pre then local rt = io.open('CONFIG','r'):read('*all') pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4') end math.randomseed(os.time()) local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{} --os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- fur MySQL51 os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- fur MySQL55 for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi); for i = 2, table.getn(t) do table.foreach(t[i],function(a,b) out[i-1] = out[i-1] or {} out[i-1][a] = tonumber(b) or b or 'NULL' out[t[1][a]] = out[t[1][a]] or {} out[t[1][a]][i-1] = tonumber(b) or b or 'NULL' end) end return out end
denn bei dir fehlt irgendwie das hier
PHP Code:
if not pre then local rt = io.open('CONFIG','r'):read('*all') pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4') end
und hier wird wenn ich nicht völlig falsch liege, definiert, dass die config geöffnet und gelesen wird, ich denke da wird dann auch das pw ausgelesen.
mfg
|
|
|
10/18/2017, 13:18
|
#21
|
elite*gold: 0
Join Date: Aug 2017
Posts: 28
Received Thanks: 9
|
Quote:
Originally Posted by MaxChri
|
Lösche die Tabellen nochmal auf deinem FTP im mysql Ordner, danach importiere sie nochmal über die Datenbank und gehe dann auf Design Table und ändere die Tabellen von InnoDB zu MyISAM. Die Tabellen können sehr schnell korrupt werden, wenn man InnoDB benutzt, dies könntest du auch sehen, wenn du die Tabellen via "Check oder Repair Table" ausführen würdest. Danach sollte dein Fehler normalerweise behoben sein.
|
|
|
10/18/2017, 16:33
|
#22
|
elite*gold: 11
Join Date: Nov 2012
Posts: 256
Received Thanks: 168
|
Quote:
Originally Posted by GoldenReborn
Lösche die Tabellen nochmal auf deinem FTP im mysql Ordner, danach importiere sie nochmal über die Datenbank und gehe dann auf Design Table und ändere die Tabellen von InnoDB zu MyISAM. Die Tabellen können sehr schnell korrupt werden, wenn man InnoDB benutzt, dies könntest du auch sehen, wenn du die Tabellen via "Check oder Repair Table" ausführen würdest. Danach sollte dein Fehler normalerweise behoben sein.
|
Die Tabellen sind ok und der Fehler der Ingame gezeigt wird, entsteht nur dadurch, dass die quest mit der mysql_query nicht in die Datenbank kommt und somit "tableItems==nil" ausgegeben wird.
€: @ ; Mit deiner query funktion geht es, danke
|
|
|
All times are GMT +2. The time now is 09:11.
|
|