Kaçış! şifre ile


24

Bir kişi ünlem şifresinde nasıl kaçabilir:

$ mysql -umyuser -pone_@&!two
-bash: !two: event not found

Belli bir ters eğik çizgiyi denemek yardımcı olmadı:

$ mysql -umyuser -pone_@&\!two
[1] 22242
-bash: !two: command not found
name@domain.com [~]# ERROR 1045 (28000): Access denied for user 'myuser'@'localhost' (using password: YES)

Tüm google aramalarım ters eğik çizginin yardımcı olacağını söylüyor, ancak yardımcı olmuyor. Bu soruda önerildiği gibi tırnak kullanmanın bir yolu yoktur . Satır bir .bashrc takma adında kullanılacaktır. Endişelenmeyin, burada gösterilen kullanıcı adları ve şifreler sadece örneklerdir ve üretimde kullanılmazlar!


her zaman tek tırnak işareti kullanabilirsiniz. Bir tek alıntılı dizgenin "içinde" tek bir alıntı kullanmak için şunu deneyin:''\'
cas a

6
BTW, şifreyi komut satırına koymak, çok kullanıcılı bir sistem için potansiyel bir güvenlik riskidir. Çalışan herhangi bir işlemin komut satırı argümanlarını incelemek son derece kolaydır. Bunun yerine bir .my.cnf dosyası kullanın (hatırlayın chmod 600).
Cas

ayy. bu '\'', değil''\'
cas

Sağol Craig. Aslında, bu alternatiften daha güvenli: herkese şifrenin bir kopyasını e-postayla göndermek, o zaman kim bilir-nerede saklanır. Şahsen her dev'in kendine ait /home/userve mysql kullanıcısı olmasını tercih ederdim , ancak bu konuda karar veren ben değilim.
dotancohen

2
yönetimi akıllı ve her şeyi bilen :)
cas

Yanıtlar:


38

Parola etrafında tek tırnak işareti kullanın: -p'one_@&!two'

Bir takma adı koymak için, şöyle bir şey yaparsınız:

alias runmysql='mysql -umyuser -p'\''one_@&!two'\'''


1
-p ve parola arasında boşluk kalmadı, ama evet, bu çalışmalı
mulaz

Zaten uzayı düzenlenmiş :)
Cas

4
-bash: !two: command not found

Ayrıca &karakterden kaçman gerekiyor :

$ mysql -umyuser -pone_@\&\!two

3

Asla kullanmazsan! Tarihçe özellikleri, bunları basitçe devre dışı bırakmak için daha uygun olabilir ( set +Hbashrc içinde).


1

Şifreyi bir bash değişkeninde saklayabilirsiniz:

$ pass='one_@&!two'

Sonra değişkeni komutun yerine koyun:

$ mysql -umyuser -p$pass

ilginç cevap;)
chapskev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.