mysqld_safe UNIX soket dosyası için '/ var / run / mysqld' dizini mevcut değil


188

Mysql_safe kullanarak mysql sunucusu 5.7.17 başlatılırken, aşağıdaki hata oluşur.

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Nasıl düzeltebilirim?

Yanıtlar:


509

Bu dizinin kurulum sırasında oluşturulmamış olması tuhaf görünüyor - my.cfg'deki soket dosyasının yolunu manuel olarak değiştirdiniz mi?

Bu dizini kendiniz oluşturmayı ve hizmeti yeniden başlatmayı denediniz mi?

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

2
Hayır, manuel olarak herhangi bir değişiklik yapmadım. Bunu dizin oluşturarak deneyeceğim. Öneriler için teşekkürler
Rajadip

14
MySQL 5.7 olur. Mysql hizmetini durdurduğunuzda / var / run / mysqld kaldırılır ve hizmeti yeniden başlattığınızda yeniden oluşturulur.
Capy

2
Her ikisi için sudo kullanmak zorunda kaldım
Kasun Rajapaksha

1
@Capy - upvoted - @Matt Clark - cevabınızı, DIR yaratılmış olsa bile çalıştırdığımızda silinecek bilgileri içerecek şekilde düzenlersiniz - $ sudo /etc/init.d/mysql stopteşekkürler
Rohit Dhankar

Bu adımları izleyerek hala aynı hatayı alıyorsanız sudo, bu dizin bir kez mysqldurdurulduktan ve sudobu klasörlere erişmeden bu dizinin kaldırılması nedeniyle bu sorunu çözecektir NOT !
Jadeye

72

Kodu kullandığımda mysqld_safe --skip-grant-tables &ama hatayı alıyorum:

mysqld_safe UNIX soket dosyası için '/ var / run / mysqld' dizini mevcut değil.

$ systemctl stop  mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &

Çözdüm:

$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld

Şimdi aynı kodu kullanıyorum mysqld_safe --skip-grant-tables &ve

mysqld_safe mysqld arka plan programının / var / lib / mysql veritabanlarıyla başlatılması

Eğer kullanırsam $ mysql -u rootalacağım:

Sunucu sürümü: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

Telif Hakkı (c) 2000, 2017, Oracle ve / veya bağlı kuruluşları. Tüm hakları Saklıdır.

Oracle, Oracle Corporation ve / veya bağlı şirketlerinin tescilli ticari markasıdır. Diğer adlar, ilgili sahiplerinin ticari markaları olabilir.

'Help;' yazın; veya '\ h' yardım için. Geçerli giriş deyimini silmek için '\ c' yazın.

mysql>

Şimdi şifreyi değiştirme zamanı:

mysql> use mysql
mysql> describe user;

Tablo ve sütun adlarının tamamlanması için tablo bilgilerini okuma -A ile daha hızlı bir başlangıç ​​yapmak için bu özelliği kapatabilirsiniz

Veritabanı değişti

mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');

veya Her yerden bağlanabilecek bir mysql kök hesabınız varsa, şunları da yapmalısınız:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

Alternatif Yöntem:

   USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

Ve her yerden erişebilen bir kök hesabınız varsa:

 USE mysql
 UPDATE user SET Password = PASSWORD('newpwd')
 WHERE Host = '%' AND User = 'root';`enter code here

şimdi quitmysql ve durdur / başlat gerekir

FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

şimdi tekrar `` mysql -u root -p '' ve almak için yeni şifreyi kullanın

mysql>


9
MySQL 5.7.6'dan beri Parola sütunu "authentication_string" olarak yeniden adlandırıldı Burada daha fazla bilgi edinebilirsiniz: bugs.mysql.com/bug.php?id=76655
IberoMedia

6

CentOS'ta benim için çalış:

$ service mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root mysql

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

$ service mysql restart

0

Veritabanınızda veri yoksa VEYA bu verileri geri yüklemek için başka bir veri kaynağınız varsa aşağıdakileri deneyebilirsiniz. Ubuntu sunucusu kök parolasını bilmeniz gerekir, ancak mysql kök parolasını bilmemeniz gerekir.

Muhtemelen çoğumuz "mysql_secure_installation" ı kurduk çünkü bu en iyi uygulama. Mysql_secure_installation dosyasının bulunduğu bin dizinine gidin. Ubuntu sistemlerindeki / bin dizininde bulunabilir. Yükleyiciyi yeniden çalıştırarak, kök veritabanı parolasını değiştirip değiştirmemeniz istenir.


Ancak, bu sadece güvenli mysql sunucusu kullanmak olduğunu düşünüyorum. Değil mi? Bu problemde bir fark yaratmaz.
Rajadip

Öncelikle geçerli şifreyi girmeniz gerektiğinden, root şifresini unuttuysanız bu yardımcı olmaz.
Jistanidiot
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.