Şifre olmadan linux root kullanıcısı mysql root erişimi


28

CPanel'de root olarak giriş yaptığımda "mysql" yazıp hostname ve şifreniz olmadan bana mysql root kullanıcısına direkt erişim sağlıyor.

Bunu cpanel olmayan sunucumdan biri için yapmak istiyorum, burada linux root kullanıcısı parola mysql root kullanıcısı için cPanel ile aynı şekilde daha az oturum açar.

Mümkün mü ?

Yanıtlar:


53

Bunu yapmanın en kolay yolu ~ / .my.cnf dosyasının bir istemci bölümünü kullanmak ve buradaki bilgileri eklemek.

[client]
user=root
password=somepassword
...

Bu dosyayı sadece root tarafından okunabilir hale getirmek iyi bir fikirdir.


1
Evet bu işe
yarar ve cPanel'in

9
Potansiyel bir güvenlik sorununa işaret etmem gerekiyor. /etc/my.cnfMySQL sunucusunun önyükleme yapmak için kullandığı düzenlemeyi yapmadığınıza dikkat etmeniz gerekiyor . Eğer mysql root kullanıcısını /etc/my.cnfANYONE içine koyarsanız, mysql sunucusunu HER veritabanı üzerinde TÜM ayrıcalıklarla bir şifre kullanmadan kullanabilirsiniz. Iain, kabuğun kendi .my.cnfkökündeki evinde, elbette doğru olduğuna işaret ediyor.
Koen van der Rijt

Ya ~ / .my.cnf dosyası yoksa? Eğer onu yaratıp mysqld'i yeniden başlatırsam, bunu yapmam gerekir mi?
Amalgovinus

21

Mysql 5.7+ için, ilk kurulum için boş şifre belirlerseniz, mysql otomatik auth_socketolarak bir strateji olarak kullanılacaktır . Stratejiyi değiştirmeden şifreyi güncelleme denemesi sonuç vermez. Eğer kullanıcı iseniz, şifre kullanmadan her zaman giriş yapabilirsiniz root.

Çözüm Kimlik doğrulama stratejisini değiştirmek ve şifreyi ayarlamak için aşağıdaki komutu çalıştırın.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''

referans: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/


3
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Çalışabilmesi

Intersting @kramer, sadece senin gibi ayarlarsam çalışır ... BY "";. Teşekkürler!
Juan Antonio,

Şifreyi değiştirip 'ANY_PASSWORD' olarak değiştiriyor ve şifreyi temizlemiyor. Parola olmadan silmek ve giriş yapmak için boş bir dizeye ayarlayın.
Fernando Kosh

7

MySQL 5.6.6'dan itibaren, sizi otomatik olarak giriş yapacak şifreli bir dosya oluşturmak için mysql_config_editor yazılımını kullanabilirsiniz:

mysql_config_editor set --login-path=client --host=localhost --user=root --password

Ardından istendiğinde şifreyi girin.

Not: Şifrenizde '#' işareti varsa ve muhtemelen başka karakterler varsa, şifreyi girerken tek tırnak işareti kullanın.


Tek alıntıyla ilgili yorum yapabilir misiniz? Sizden terminaldeki şifreyi
soruyor

Evet, özel karakterleri varsa, tırnak işaretleri olmadan girilmesinin işe yaramadığını öğrendim. Sizden istendiğinde, sadece '(tek alıntı), sonra şifreyi ve sonra' girin.
Brian Deterling

0

Sadece mysql root şifresini içeren bir dosya oluşturun ve sadece root okuyabilir.

# ls -l /root/.mysqlpw 
-rw------- 1 root root 7 2013-08-19 13:24 /root/.mysqlpw

İle bir veritabanı alabilirsiniz

# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase < databasedump.sql

veya veritabanınıza bağlanın ve mysql komutlarını verin

# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20460
Server version: 5.1.63-0ubuntu0.10.04.1 (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| yourdatabase       |
+--------------------+
3 rows in set (0.00 sec)

mysql> show tables;
...

5
Bu, diğer cevaplardan çok daha fazla iş. Ve şifreniz çok kısa. :)
Michael Hampton

8
Bunu yapma. Şifreyi birinin okuyabileceği komut satırına koyar ps(1)
camh

Bu gerçekten iyi bir fikir değil
Fernando Kosh
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.