MySQL'de veritabanı nasıl bağlanır ve oluşturulur?


17

MySQL'i kurmak ve aşağıdaki kodu kullanarak bir veritabanı oluşturmak istiyorum:

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

İkinci satırı yürüttükten sonra şu mesajı alıyorum:

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

Sorun nedir?


1
Bu 2 komutu gerçekten kullandıysanız, bir veritabanına erişebilmek için {username} (yönetici / root değilse) için PRIVILIGES verdiniz mi?
Rinzwind

Yanıtlar:


26

MySQL'i kurduktan sonra, mysql kök şifresini ayarlamanız gerekir . Böyle yaparak:

  1. Bir terminalde sonraki komutu girin:

    mysql -u root

  2. Şimdi mysql konsolunu açmalıdır. Ve aşağıdaki satırı yazın:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

MySQL konsolundan çıkmak için girin exit.

Şimdi kök kullanıcı ile veritabanı oluşturmanız gerekir . Böyle yaparak:

  1. Terminalden açık mysql :

    mysql -u root -p

  2. Daha önce oluşturulan şifreyi girin.

  3. Aşağıdaki satırı girin:

    CREATE DATABASE yourdatabasename;

Eğer girerseniz SHOW DATABASES;, listede görmelisiniz. Eğer öyleyse, kullanıma hazır bir veritabanınız var!


mysql -u rootverirERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul

Bu hata, zaten bir rootkullanıcınız olduğu ve şifresi olduğu anlamına gelir . Eğer unuttuysanız rootşifre okumak MySQL belgelerine .
Lucio

1

Kök kullanıcı ve ilişkili şifreyi kullanarak MySQL'e bağlanmanız gerekir. Bunları ayarlamanız gerekiyorsa, aşağıdaki komutu kullanın:sudo mysqladmin -u root -h localhost password 'mypassword'

Buradan, bu belgeyi izleyerek ek hesaplar yapılandırabilirsiniz: Yeni Kullanıcı Oluşturma ve MySQL'de İzin Verme


1
Kopyalayıp sudo mysqladmin -u root -h localhost password 'mypassword'terminalime yapıştırdım ve mesajı aldım Access denied for user 'root'@'localhost' (using password: NO).
user543489

@Bert Bu kod çalışmaz. password 'mypassword'Olması gereken, yanlış-password 'mypassword'
Lucio

bir şey 'şifrem' ile değiştirilmeli mi?
user543489

Ben idam ettim sudo mysqladmin -u root -h localhost -password 'mypassword'ama anladım Access denied for user 'root'@'localhost' (using password: YES).
user543489

@ user543489 Girerseniz ne olur mysql -u root?
Lucio

1

Bu garip çünkü 12.04'ten beri (Kubuntu 12.04'ü çalıştırdığınızı tahmin ediyorsanız), MySQL varsayılan oldu. Görünüşe göre, aralarında birkaç adım eksik, bu yüzden şuna bir bakalım:

İlk olarak, belirttiğiniz gibi, bir kurulum yapalım,

sudo apt-get install mysql-server

Yükledikten sonra, biraz test deneyelim,

sudo netstat -tap | grep mysql

Bunu çalıştırdığınızda, bu yanıtı görmelisiniz,

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

Bu düzgün çalışmıyorsa, bu yeniden başlatma komutunu çalıştırın,

sudo service mysql restart

Şimdi sunucuyu yapılandırmak için.

/etc/mysql/my.cnfTemel ayarları yapılandırmaya gidelim . Bu, Günlük Dosyasını, Bağlantı Noktası Numarasını vb. İçerir. Örneğin, MySQL'i ağ ana bilgisayarlarından bağlantıları dinleyecek şekilde yapılandırmak için bağlanma adresi yönergesini sunucunun IP adresine değiştirin:

bind-address            = 192.168.0.5

Bundan sonra, MySQL arka plan programını yeniden başlatın,

sudo service mysql restart

MySQL kök parolasını değiştirmek istiyorsanız, şunu çalıştırın:

sudo dpkg-reconfigure mysql-server-5.5

Arka plan programı durdurulur ve sizden yeni bir parola girmeniz istenir.

İşiniz bittiğinde yapılandırmanız gerekir ve birkaç google araması size nasıl veritabanı oluşturulacağını öğretir

Kaynak: Ubuntu Sunucu Kılavuzu


0

Bu komutu çalıştırın:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 sürüm numarasıdır, farklı bir sürümünüz varsa uyarlayın)

Bu, daha sonra mysqladminve mysqlkomutlarıyla kullanabileceğiniz MySQL kök parolanızı ayarlamanıza izin verecektir .


-1

MySQL'i kurduktan sonra, mysql kök şifresini ayarlamanız gerekir. Böyle yaparak:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

Bu, kabul edilen cevapta henüz söylenmemiş hiçbir şeye katkıda bulunmaz.
guntbert

-1

Bunun 3 yaşında olduğunu biliyorum ama ben de bu sorunu yaşadım ve başka biriyle yaptığım aramayı yapması durumunda cevabımı göndermek istedim.

mysqladmin: connect to server at 'localhost' failed

Bu, kullanıcının oturum açmadan önce veritabanına bağlanma izninin olmadığını gösterir; veritabanı kullanıcısı değil, gerçek linux kullanıcısı değil. Her şeyi süper kullanıcı olarak çalıştır: sudo mysql -u root -p

Yalnızca root (linux kullanıcısı veya sudo ayrıcalıklarına sahip bir kullanıcı) mysql'de root (veritabanı kullanıcısı) olarak oturum açabilir. Bunu belgeleyen hiçbir yer bulamadım, ancak deneyler böyle olduğunu kanıtladı. Kök kullanıcı ile aynı haklara sahip olan ve kısıtlanmayacak yeni bir kullanıcı oluşturabilirsiniz.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Şimdi "newuser" (ya da seçtiğiniz herhangi bir isim) sudo gerekmeden giriş yapabilir ve bunu tüm veritabanı yönetim ihtiyaçlarınız için kullanabilirsiniz.


1
probablyBurada bir cevapta kelimeyi kullanmak kaşlarını çattı.
WinEunuuchs2Unix

Bunu kesinlikle test etmeden söyleyemem, şimdi yapabilir miyim?
WizardStan
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.