mysql kurulum sırasında root şifresi sormuyor


54

Ben kullanılan apt install mysql-serverUbuntu 16.04 üzerinde MySQL kurmak için ancak yükleme sırasında, bu kök şifre sormadı.

Yükleme tamamlandıktan sonra aldım ERROR 1045ben olarak giriş çalışırken rootve mysql_secure_installationaynı hatayı attı. Ben purged ve autoremoved sonra yeniden yükledi ama çalışmıyor.

Bunu nasıl düzeltebilirim? Kurulum sırasında ayarlamadıysam root şifresini ayarlayabilir miyim?

Bu benim yükleme günlüğüm:

Aşağıdaki ek paketler yüklenecek:
  libaio1 mysql-müşteri-5.7 mysql-müşteri-çekirdek-5.7 mysql-sunucu-5.7
  MySQL sunucu çekirdekli 5.7
Önerilen paketler:
  mailx tinyca
Aşağıdaki YENİ paketler yüklenecek:
  libaio1 mysql-müşteri-5.7 mysql-müşteri-çekirdek-5.7 mysql-sunucu mysql-server-5.7
  MySQL sunucu çekirdekli 5.7
0 yükseltildi, 6 yeni yüklendi, 0 kaldırıldı ve 0 yükseltilmedi.
0 B / 17,9 MB arşiv almanız gerekiyor.
Bu işlemden sonra, 160 MB ek disk alanı kullanılacaktır.
Devam etmek istiyor musun? [Y / n] y
Paketlerin önceden yapılandırılması ...
Daha önce seçilmemiş paketin seçilmesi libaio1: amd64.
(Veri tabanı okunuyor ... şu anda yüklü 227144 dosya ve dizin.)
... / libaio1_0.3.110-2_amd64.deb ... paketini açmak için hazırlanıyor
Libaio1'in açılması: amd64 (0.3.110-2) ...
Daha önce seçilmemiş paketin seçilmesi mysql-client-core-5.7.
... / mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb paketini açmaya hazırlanılıyor ...
MySQL-Client-Core-5.7'nin açılması (5.7.12-0ubuntu1) ...
Daha önce seçilmemiş paketin seçilmesi mysql-client-5.7.
Açmaya hazırlanıyor ... / mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Mysql-client-5.7'nin açılması (5.7.12-0ubuntu1) ...
Daha önce seçilmemiş paketin seçilmesi mysql-server-core-5.7.
... / mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb paketini açmaya hazırlanıyor
Mysql-server-core-5.7 paketini açmak (5.7.12-0ubuntu1) ...
Daha önce seçilmemiş paketin seçilmesi mysql-server-5.7.
Paketi açmaya hazırlanıyor ... / mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Mysql-server-5.7'nin açılması (5.7.12-0ubuntu1) ...
Daha önce seçilmemiş paketin seçilmesi mysql-server.
Açmaya hazırlanıyor ... / mysql-server_5.7.12-0ubuntu1_all.deb ...
MySQL sunucusunu açmak (5.7.12-0ubuntu1) ...
Libc-bin için işlem tetikleyicileri (2.23-0ubuntu3) ...
Man-db için işlem tetikleyicileri (2.7.5-1) ...
Systemd için işlem tetikleyicileri (229-4ubuntu4) ...
Ureadahead için işlem tetikleyicileri (0.100.0-19) ...
Libaio1 kuruluyor: amd64 (0.3.110-2) ...
MySQL-Client-Core-5.7 (5.7.12-0ubuntu1) ayarlanıyor ...
MySQL-client-5.7 (5.7.12-0ubuntu1) ayarlanıyor ...
MySQL-server-core-5.7 (5.7.12-0ubuntu1) ayarlanıyor ...
MySQL-server-5.7 (5.7.12-0ubuntu1) ayarlanıyor ...
update-alternatives: /etc/mysql/mysql.cnf işlevini, /etc/mysql/my.cnf (my.cnf) işlevini otomatik modda sağlamak için kullanma
Güncelleme gerekip gerekmediğini kontrol etmek.
MySQL'in bu kurulumu zaten 5.7.12'ye yükseltildi, hala mysql_upgrade komutunu çalıştırmanız gerekiyorsa --force komutunu kullanın.
MySQL sunucusunu ayarlama (5.7.12-0ubuntu1) ...
Libc-bin için işlem tetikleyicileri (2.23-0ubuntu3) ...

Yanıtlar:


60

Geçerli şifreyi bilmeden kök şifreyi, mysql kodunu vererek, hibe tablolarını yüklemeden kurtarabilir veya ayarlayabilirsiniz.

Lütfen $komutlardakilere dikkat edin . Bu, komutu yazarken gördüğünüz terminal istemini belirtir. Bir metin satırı, ancak gerçek yazılan terminal komutu olduğunu gösteriyor. " mysql>" Öneki ayrıca bir bilgi istemidir. MySQL çalışırken aldığınız istemi bu etkileşimli olarak .

Bunu yapmak için kullanılan cli (komut satırı):
( Adımları gerçekleştirmeden önce geçerli sunucuyu durdurduğunuzdan emin olun . Aynı anda yalnızca bir sunucu çalıştırabilir.)

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

Şimdi şifre olmadan root olarak giriş yapabilir ve tüm komutları uygulayabilirsiniz, bu durumda olduğu gibi root şifresini root olarak ayarlayabilirsiniz.

$ sudo mysql --user=root mysql

MySQL 5.6 veya daha düşük bir sürüm varsa, mysql içinde gerçekleştireceğiniz set root şifresi:

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

MySQL 5.7 veya üzeri sürümlerde

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

Oradan, mysql çıkın (çalışan msqld öldürmek) ve normal olarak başlatın.

MySQL hizmetini başlatma ve durdurma ile ilgili notlar:

MySQL'i durdur:

$ sudo service mysql stop

MySQL'i başlat (normal):

$ sudo service mysql start

Geçici mysql güvenli mod oturumunu sonlandırın:

$ sudo mysqladmin shutdown

11
MySQL 5.7.12'de kullanıcı tablosunda parola adlı sütun yoktur. Dolayısıyla aşağıdaki komut benim için çalıştı. kullanıcı setini güncelle authentication_string = ŞİFRE ('yeni şifre') burada kullanıcı = 'root';
Kod,

7
Ben hala alıyorumERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
llamerr

@ ErelSegal-Halevi Yapmanız gereken iki şey var. Run $ mysql_upgrade -u root -p. Ayrıca RP Singh tarafından verilen komutu da deneyin.
LD James,

Ayrıca hala bu hatayı alıyorum.
Jamie Hutber

SET PASSWORD FOR 'root' = PASSWORD('your-password')mariadb kullanıyorsanız
user1036719

37

Yüklerken şifre sormayacak mysqlUbuntu 16.04'e ancak başarılı kurulumdan sonra aşağıdaki şekilde ayarlayabilirsiniz:

MySQL kurulumunu tamamladıktan sonra komutunu çalıştırın:

sudo mysql_secure_installation

Gösterecek:

NOT: ÜRETİM KULLANIMINDA TÜM MariaDB HİZMETLERİ İÇİN BU YAZI TÜM PARÇALARI ÇALIŞTIRMA! LÜTFEN HER ADIMI DİKKATLE OKUYUN!

Güvence altına almak için MariaDB'de oturum açmak için, kök kullanıcı için mevcut şifreye ihtiyacımız olacak. MariaDB'yi yeni kurduysanız ve henüz root şifresini ayarlamadıysanız, şifre boş olacaktır, bu yüzden buraya sadece enter tuşuna basmanız gerekir.

Enter current password for root (enter for none): (burada Enter tuşuna basın)

Tamam, başarıyla kullandığınız şifre, devam ...

Root şifresini ayarlamak, hiç kimsenin MariaDB root kullanıcısına uygun yetkilendirme olmadan giriş yapamamasını sağlar.

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

Şifre başarıyla güncellendi! Ayrıcalık tablolarını yeniden yükleniyor .. ... Başarı!


Ubuntu 18.04 VEYA mysql-serversürüm 5.7.22 için, BU YÖNTEM ÇALIŞMAYACAKTIR

Ubuntu 18.04'te root şifresini ayarlamak için, ilk önce ilk üç komutu veya LD James'in cevabının ilk iki adımını takip edin, sonra çalıştırın.

mysql> alter user 'root'@'localhost' identified by '<password>';

Kök kullanıcı için şifre ayarlandı!

VEYA

18.04'te root şifresini ayarlamak için aşağıdaki adımları izleyin:

Root kullanıcısı için şifre ayarlanmadığından boş şifre ile giriş yapmanız yeterlidir

sudo mysql -u root -p
Enter password: (press enter as no password is set)

ondan sonra kolayca sorgu çalıştırabilir

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

2
Bu sorudaki problem kullanıcının bilmediği için sorduğun sorulara ulaşamamasıdır current password for root.
LD James,

@LDJames evet, haklısın. ERROR: 1405'i koştuğumda mysql_secure_installationama sudo mysql_secure_installationbenim için çalıştığımı hatırlamıyorum . mysql kurulumu şifre sormuyor. Aynı benimle oldu. ve here press enterşifre olmadan enter tuşuna basın demektir.
papatya

2
Konserleri ubuntu 18.04 veya debian 9+ olarak boş parola ile bağlantı
kurmayacak

@chefarov aynı sorunu karşısında, çok can sıkıcı
RedactedProfile

Gerçekten, hala aynı hatayı alıyorum
Jamie Hutber

16

Görünüşe göre 16.04'teki mysql-server kurulumu (ya da herhangi bir 5.7 kurulum mu?) Şifre erişimiyle değil, auth_socket eklentisi ile root erişimine izin veriyor . Çalıştırma sudo mysql -u root(nb w / oa password), mysql konsolunu verirken komutu root olmayan bir şekilde çalıştırmanız parola ister.

Şifrenin değiştirilmesinin bir önemi yoktur, çünkü auth backend bir şifreyi bile kontrol etmez. Eklentinin nasıl değiştirileceği ve şifre doğrulamaya nasıl geçileceği hakkında çok kapsamlı bir makale var .


4
apt install mysql-server18.04 tarihinde bir şifre belirtmeden yeni kurulumla onaylayabildim . Belirti ve çözüm tam olarak tanımlandığı gibidir.
EricC

peki nasıl bağlarım?
Jamie Hutber

9

Sadece kurulumdan sonra:

1.

sudo mysql

(evet, kullanıcı yok geçiş yok)

2. Artık mysql konsolundasınız:

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

3.

FLUSH PRIVILEGES;

  1. Bu kadar. Şimdi konsola bir dahaki sefere her zamanki gibi girebilirsiniz:

    mysql -u kökü -p my_new_pass


3
Birçok diğer cevaplar çalıştı, ama bu bir Amazon EC2 üzerinde çalıştı
Haris ur Rehman

2
Bu, WSL Ubuntu (Windows'ta Linux) için doğru cevaptı.
Fer García,

2
Bu benim için ubuntu 18.04 yeni kurulumumda google bulut üzerinde çalışan tek cevap.
Aakash

1
19.04 Ubuntu'da benim için çalıştı. Mysql_secure_myinstallation komutunu çalıştırdım, ancak root şifresinin ayarlanmadığı anlaşılıyor.
Jens Wagemaker

1
Onlarca çözüm denedim. Bu en kolay ve çalışan tek kişiydi.
mreff555

4
  1. varsayılan bir kullanıcı hesabı var.

    $ vim /etc/mysql/debian.cnf 
    

    bu hesabı bu şekilde alacaksınız:

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. bu hesapla giriş yaptınız

    $ mysql -u debian-sys-maint -p
    
  3. kök şifrenizi düzenleyin

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. MySQL'i yeniden başlat

    $ /etc/init.d/mysql restart;
    

daha sonra mysql -u root -pönceki ayar ile yapabilirsiniz .


Diğer bütün çözümleri denedim ve bu benim için çalışan tek şey. (Linux Nane 19.2).
ElectroBuddha

0

Ana cevaba ekleyerek, eğer takılı kalırsanız

" mysqld_safe / mysqld arka planını / var / lib / mysql veritabanlarından başlayarak "

Aşağıdaki komutu girmek için başka bir terminal penceresi kullanmanız gerektiğini hatırlamanız gereken 1 şey.

$ sudo mysql --user=root mysql

Aynı pencerede yapmaya çalışırsanız, mysqld safemode işlemini kapatır.


-1

İşte Ubuntu 18.10’da mysql-serverbir terminal şifresi istemiyle nasıl ayarlayacağınız .

  1. MySQL APT Deposunu https://dev.mysql.com/downloads/repo/apt/ adresinden indirin.
  2. cdindirdiğiniz ve çalıştırdığınız dizine dpkg -i mysql-apt-config_0.8.13-1_all.deb(sürüm numaranızı kontrol edin)
  3. İstenilen menüden son seçeneği "Tamam" ve sonra tekrar "Tamam" ı seçin.

  4. Mysql-server ve mysql-client komutunu güncelleyin ve kurun:

sudo apt güncelleme
sudo apt yükleme mysql-sunucu mysql-istemci
  1. Kök parolanızı promosyona yazın.
  2. Seç "Use Legacy Authentication Method"senin çerçeveler / yeni desteklemez (örneğin laravel gibi) uygulamaları çalıştırma eğer "Strong Password Encryption"henüz çerçeve / uygulama destekler aksi takdirde, "Strong Password Encryption"o zaman onu seçin.
  3. Root olarak giriş yapın ve çalışıp çalışmadığını kontrol edin.
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.