[FIX] MySQL warning "password on the command line"

Ghiduri şi tutoriale despre cum să vă îmbunătăţiţi serverul/clientul dv. de metin2.
Deconectat
Avatar utilizator
Răzvaan
Utilizator interzis !
Utilizator interzis !
Mesaje: 2052
Membru din: 15 Mar 2015
Localitate: Suceava
Reputație: Super Ad Moderator
Lider Ad Moderatori
Lider Mister
Fost Lider Moderatori
Fost Lider Trial Moderatori
Fost Lider Miss
Nume anterioare: ElAlcon, Brian O'Conner, Grinchzvan
Status: Un fel de două feluri
Server Metin2: da
Regat: Shinsoo
Mulțumiri acordate: 1
Mulțumiri primite: 41
Contact:

[FIX] MySQL warning "password on the command line"

Mesajde Răzvaan » 30 Mar 2016, 20:07

Aceasta eroare apare doar la versiunile 5.6 & 5.7.
Avertisment in shell & mysql log: Using a password on the command line interface can be insecure.
Majoritatea persoanelor folosesc mysql_query (standard) functia din questlib.lua si primesc aceasta eroare
Daca folositi mysql user schimbati mai sus "YOURUSERNAME" si utilizati comanda

Cod: Selectaţi tot

mysql_config_editor set --login-path=local --host=localhost --user=YOURUSERNAME --password

Daca folositi root mysql user utilizati comanda:
mysql_config_editor set --login-path=local --host=localhost --user=root --password
Acum puteti vedea ca sistemul creeaza un nou fisier criptat: .mylogin.cnf
Puteti vedea acest fisier in /home/YOURUSERNAME/.mylogin.cnf sau pentru root in /root/.mylogin.cnf
E criptat dar puteti vedea ce e in interior (parola este ascunsa *****) cu comanda:

Cod: Selectaţi tot

mysql_config_editor print --all

Daca vreti sa intrati in mysql utilizati comanda mysql --login-path=local
Acum deschideti questlib.lua si stergeti functia mysql_query si adaugatia functia asta noua:

Cod: Selectaţi tot

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,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


SURSA: SixSense
Imagine

SERVICII: PHOTOSHOP, PHPBB, METIN2

Deconectat
Avatar utilizator
SixSense
Nou Venit
Nou Venit
Mesaje: 23
Membru din: 04 Sep 2014
Status: Sunt bine mersi ^.^
Mulțumiri acordate: 0
Mulțumiri primite: 0

Re: [FIX] MySQL warning "password on the command line"

Mesajde SixSense » 08 Apr 2016, 05:01

Hehe ;)
Imagine


Înapoi la “Ghiduri şi Tutoriale”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: andyandrey, eduleonis și 11 vizitatori