Ubuntu 16.04'te MySQL Workbench aracılığıyla localhost'a bağlanılamıyor (şifresiz kök)


19

Oracle web sitesi yalnızca 15 ve 14'te çalıştığını ima ediyor gibi görünüyor. Http://dev.mysql.com/downloads/workbench/

Ayrıca Ubuntu 16.04 makinelerimden ikisi bağlanamıyor gibi görünüyor (Kök için Erişim Reddedildi hataları)

Resim

İyi yükler. Tamam açılıyor. Ancak localhost'a bağlanmaz.

Herkesin şansı var mı?


Onu kaynaktan mı yaptın? Verilen tam hata nedir? Yanlış bir şifre belirttiğinize benzer mi?

Evet benzer. Ancak root'un şifresi yoktur. Ve komut satırındaki root'a doğru bir şekilde bağlanabiliyorum. Ve tüm ayrıcalıkları iki kez kontrol ettim ve koştum FLUSH PRIVILEGES; Bu noktada, Oracle sitesi açık bir şekilde sadece 14 ve 15 diyor
Jonathan

Oracle'ın işe yaramadığını iddia ettiğini görmedim, sadece Xenial için bir ikili görmedim. Ancak burada mysql-workbench'i görüyorum, Packages.ubuntu.com/xenial/mysql-workbench . Bu hata bir yazılım uyumluluk hatası gibi görünmüyor. MySQL'de günlüğe kaydetmeyi açın ve günlük düzeyini 2'ye yükseltin ve günlüğün isteğinizi gösterip göstermediğine bakın.

@ bc2946088 mysql-workbench16.04 bağlantı
Videonauth

4 seçenekten herhangi birini kontrol ettiniz mi? ;-) WB benim için mükemmel çalışıyor (5.7 btw ile). Aşağıdaki kanıt.
Rinzwind

Yanıtlar:


31

Sorunun nedeni, 16.04 sürümüne yükseltme sırasında herhangi bir parola ayarlanmadığında kök kullanıcı için varsayılan olarak yuva kimlik doğrulamasının etkinleştirilmesinden kaynaklanmaktadır. Bu önemli uyarı 16.04 sürüm notlarında belgelenmiştir :

MySQL kök parolası boşken parola davranışı değişti. Paketleme artık MySQL kök parolası boş olduğunda soket kimlik doğrulamasını etkinleştirir. Bu, root olmayan bir kullanıcının boş bir parolayla MySQL kök kullanıcısı olarak oturum açamayacağı anlamına gelir.

Her ne sebeple olursa olsun, 16.04 ile gelen MySQL Workbench, en azından benim için MySQL sunucusu ile kutudan çıkmıyor. "Yerel Soket / Boru" kullanarak farklı şekillerde bağlanmak ama boşuna kullanmayı denedim.

Çözüm, yerel parola kimlik doğrulamasına geri dönmektir. Soket kimlik doğrulamasını kullanarak MySQL'de oturum açarak bunu yapabilirsiniz:

sudo mysql -u root

Giriş yaptıktan sonra:

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

yerel (eski varsayılan) şifre kimlik doğrulamasına geri döner. Sorunu çözmek için başka bir yöntem denediyseniz, mysql.user içindeki "eklenti" alanının "auth_token" olarak ayarlandığından emin olmak istersiniz. Benim yaptığım gibi şeylerle teneke kapılıyorum.

Bu çözüm için Miguel Nieto'nun blog gönderisine teşekkür ederiz.


Şaşırtıcı, bunu hiç fark etmemiştim.
Jonathan

Bu düzeltildi, ancak bir dahaki sefere güncellemeyi çalıştırdığımda tekrar kırdı.
Jonathan

Uygun güncelleme çıktısı neydi?
Mike M

Ben görmedim, çünkü bir dahaki sefere mysql koştu kadar fark etmedi, çok daha sonra
Jonathan

Bu bir Ubuntu 16.04 veya mysql 5.7 şey mi acaba (bu değişikliği yapan Oracle mı yoksa Canonical mi?)
Jonathan

23

MySQL 5.7 ve sonraki sürümleri "root" olarak bağlanmayı desteklemediğinden mysql-workbenchnormal bir kullanıcı oluşturmanız ve bunun üzerinden bağlanmanız gerekir.

sudo mysql -u root -p

"Admin" adlı bir kullanıcı oluşturun ve bunu bağlanmak için kullanın mysql-workbench.

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Bu cevap benim için mükemmeldi, teşekkürler Jonathan.
Chris Evans

2
Bu Ubuntu 18.04
tadeubarbosa

Mükemmel. Teşekkür ederim (18.04.2)
Ron Nuni

5

Bu soru iki yaşında olabilir ama bu gece mysql-workbench ile olan çalışmam bana cevap verdi.

artık root kullanıcısı varsayılan olarak auth_socket kimlik doğrulaması yapıyor. Kökün erişebilmesinin tek yolu root olarak giriş yapmaktır.

Bunu mysql -u rootkök kullanıcı ve standart kullanıcı olarak çalıştırarak öğrendim .

Standart kullanıcı altında çalışmaz.

Yani bir sonraki sorum şuydu - mysql-workbench kullanıcının yaptığı gibi. Varsayılan olarak standart kullanıcı olarak çalıştığı ortaya çıkıyor. Kök kullanıcı olarak çalışmasını sağlamak için kökten çalıştırılması gerekir. Bu yüzden root kullanıcı CLI'sine girdim ve 'mysql-workbench' yazdım.

Daha sonra burada gösterildiği gibi kök kullanıcı ayarlarına gitmek zorunda kaldım. Dosya konumu bir ubuntu 18.04 yüklemesi için geçerlidir.

Kök bağlantı ayarları mysql-tezgah.

Bu soket konumu geçersizse, root veya sudo'dan mysql CLI'ye gitmeniz ve aşağıdaki komutu çalıştırmanız gerekir.

Soketi bulmak için MySQL CLI komutu.

Doğru ayarları yaptıktan sonra bağlantıyı test edin. Başarılı olmalı ve başlamaya hazırsınız.


Bunun için teşekkür ederim! Güvenlikle ilgili değişiklikleri, daha yeni bir yöntemi kullanarak bağlanmasını söyleyebileceğim eski bir aracı desteklemek için kimlik doğrulamasına geri döndürmemeliyim.
Aaron

Bu yolla yerel bir bağlantı kurabilir miyim? TCP / IP ile neden bağlanamıyoruz anlamıyorum.
john gonidelis

2

Benim için iyi çalışıyor ve özel bir şey yapmadım. mysql-server-5.7Hem komut satırından yüklü hem de çalışma tezgahı ve bir parola ile bir kullanıcı ayarlayın ve normal veritabanı izinlerini ayarlayın (normal yöntemle de).

resim açıklamasını buraya girin

Ve bir veritabanı ve tablo ile:

resim açıklamasını buraya girin


İlginç. Disworld referansını seviyorum. Mysql paketlerini yeniden yapılandırdığımda parolayı değiştirmek için bir istem almıyorum. Yapıyor musun? Bozuk bir kurulum ya da çakışma olduğunu düşünüyorum. Bence root şifresini değiştirmek için bir istem almam gerekiyor.
Jonathan,

1

Auth_socket eklentisini kullanarak mysql çalışma tezgahı üzerinden bağlanabilen uygun yönetici ayrıcalıklarına sahip bir kullanıcı hesabı oluşturun. Bunun mysql sunucusuna kök bağlantıları için çalışmadığını unutmayın .

Terminal oturumundan mysql oturumu açma:

$sudo mysql

Bunu yapabiliyorsanız, auth_socket eklentisi etkinleştirilir ve kök hesap bu eklentiyi kullanarak kimlik doğrulaması yapar. Güvenli kurulum komut dosyasını çalıştırdıktan sonra ubuntu'ya mysql yüklerken bunun varsayılan kurulum olduğunu unutmayın.

İlk önce 'valerie' hesabınız için bir mysql kullanıcısı oluşturun:

mysql> CREATE USER 'valerie'@'localhost' IDENTIFIED WITH auth_socket;

Hesap için yönetici ayrıcalıklarını etkinleştirin:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'valerie'@'localhost' WITH GRANT OPTION;

Kabuktan çık:

mysql> exit

Sonra mysql tezgahında:

  1. Yeni bir bağlantı oluştur
  2. Yerel Soket / Boru olarak bağlantı yöntemini seçin
  3. Soket / Boru Yolunu şu şekilde ayarlayın: /var/run/mysqld/mysqld.sock (bunun bir Debian / Ubuntu sisteminin yolu olduğunu ve diğer Linux lezzetleri için değişiklik olduğunu unutmayın)
  4. Kullanıcı adını ayarlayın (bu örnekte 'valerie')

Daha sonra bu bağlantıyla mysql sunucusuna bağlanabilmeniz gerekir.


0

bunu dene

mysql veritabanını seçin

1: mysql kullanın;

2: UPDATE kullanıcı kümesi eklentisi = 'mysql_native_password' burada Kullanıcı = 'kök';

3: yıkama ayrıcalıkları;

4: çıkış;

~ $ sudo service mysql yeniden başlatma


0

Ubuntu 16.04 çalıştıran AWS ana bilgisayarındaki MySQL sunucusu; Ubuntu 16.04 dizüstü bilgisayarda mysql-tezgah; KeyPair bağlantısını kullanır.

Kurduktan sonra Test db bağlantısı çalışıyordu. Ancak asıl bağlantı her zaman Jonathan Leaders'ın gönderdiği mesajla başarısız oldu. Oturum açma kontrol edildi ~/.mysql/workbench/logve birkaç "izin reddedildi" mesajı bulundu.

Şimdi çalışmak için mysql-workbench alabilirsiniz: sudo mysql-workbench

Ve sonra gidebilirim ve chmodizin ihtiyacı olan dizinler.


2
Bu sorunun cevabı mı?
George Udosen
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.