İlan
06 Haz 2026 20 çevrimiçi üye Duyurular
Ana Sayfa Forum SQL Yeni Başlık: Metin2 MySQL Hatası Çözümü: MySQL 5.6...
İlan Yan banner placeholder

Yeni Başlık: Metin2 MySQL Hatası Çözümü: MySQL 5.6-5.7 "Using a password.." Sorununun Püf Noktası

neto 01.05.2026 02:11 890 görüntüleme 2 cevap
Son Mesaj
neto
Üye
Üye
Katılım08 Nis 2026
Konular7
Mesajlar84
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
01.05.2026 02:11 #1
MySQL 5.6 ve 5.7 kullananlar büyük ihtimal görmüştür, shell’de ya da mysql log’da şu uyarı çıkıyor: “Using a password on the command line interface can be insecure.” Daha düşük sürümdeysen zaten hiç takılmana gerek yok, bu olay direkt o versiyonlarla alakalı.


Genelde olay şu, questlib.lua içindeki standart mysql_query fonksiyonunu kullananlarda bu warning sürekli düşüyor. Çünkü şifreyi direkt command line üzerinden veriyorsun, MySQL de bunu sevmiyor haliyle. Ben de bir süre görmezden geldim ama sonra temiz çözüm aradım. Burada çözüm aslında mysql_config_editor kullanmak. Eğer normal bir mysql user kullanıyorsan şu komutu giriyorsun:

mysql_config_editor set --login-path=local --host=localhost --user=YOURUSERNAME --password
root kullanıyorsan da aynı mantık:
mysql_config_editor set --login-path=local --host=localhost --user=root --password

Şifreyi girdikten sonra sistem .mylogin.cnf diye şifreli bir dosya oluşturuyor. User için /home/YOURUSERNAME/.mylogin.cnf, root için /root/.mylogin.cnf altında oluyor. İçini direkt okuyamıyorsun ama şu komutla ne var görebiliyorsun:
mysql_config_editor print --all
Bundan sonra mysql’a girerken de direkt:
mysql --login-path=local
yeterli oluyor, artık şifreyi command line’a yazmıyorsun.

Sonra iş questlib.lua tarafına geliyor. Artık config’ten user/pass çekmeye gerek kalmıyor, o yüzden eski mysql_query fonksiyonunu silip aşağıdakini koyuyorsun:

kod bloğu:
mysql_query = function(query)
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
end



Bunu yaptıktan sonra warning tamamen kesiliyor. Hem daha temiz hem de uğraştırmıyor. Ben bu şekilde kullanıyorum, sorun çıkarmadı şu ana kadar.
artugmurat
CYAgency
Üye
Üye
Katılım03 Nis 2026
Konular7
Mesajlar65
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
04.05.2026 05:40 #2
eline sağlık paylaşım için teşekkürler.
sercantuna
Üye
Üye
Katılım01 Oca 2026
Konular8
Mesajlar39
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
04.05.2026 14:47 #3
MySQL 5.6 ve 5.7 kullananlar büyük ihtimal görmüştür, shell’de ya da mysql log’da şu uyarı çıkıyor: “Using a password on the command line interface can be insecure.” Daha düşük sürümdeysen zaten hiç takılmana gerek yok, bu olay direkt o versiyonlarla alakalı.

Genelde olay şu, questlib.lua içindeki standart mysql_query fonksiyonunu kullananlarda bu warning sürekli düşüyor. Çünkü şifreyi direkt command line üzerinden veriyorsun, MySQL de bunu sevmiyor haliyle. Ben de bir süre görmezden geldim ama sonra temiz çözüm aradım. Burada çözüm aslında mysql_config_editor kullanmak. Eğer normal bir mysql user kullanıyorsan şu komutu giriyorsun:

mysql_config_editor set --login-path=local --host=localhost --user=YOURUSERNAME --password
root kullanıyorsan da aynı mantık:
mysql_config_editor set --login-path=local --host=localhost --user=root --password

Şifreyi girdikten sonra sistem .mylogin.cnf diye şifreli bir dosya oluşturuyor. User için /home/YOURUSERNAME/.mylogin.cnf, root için /root/.mylogin.cnf altında oluyor. İçini direkt okuyamıyorsun ama şu komutla ne var görebiliyorsun:
mysql_config_editor print --all
Bundan sonra mysql’a girerken de direkt:
mysql --login-path=local
yeterli oluyor, artık şifreyi command line’a yazmıyorsun.

Sonra iş questlib.lua tarafına geliyor. Artık config’ten user/pass çekmeye gerek kalmıyor, o yüzden eski mysql_query fonksiyonunu silip aşağıdakini koyuyorsun:

kod bloğu:
mysql_query = function(query)
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
end


Bunu yaptıktan sonra warning tamamen kesiliyor. Hem daha temiz hem de uğraştırmıyor. Ben bu şekilde kullanıyorum, sorun çıkarmadı şu ana kadar.
Paylaşım için teşekkürler.
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
Benzer Konular
Full sürüm navicat + crack 2017 1
masterthone · 02 May 2026
14 cevap
1.9K görüntüleme
21 cevap
1.9K görüntüleme
6 cevap
1.9K görüntüleme
8 cevap
1.9K görüntüleme
34 cevap
1.9K görüntüleme
İlan Yan banner placeholder