web-gelistirme-sc.com

HATA 2002 (HY000): '/var/run/mysqld/mysqld.sock' soketinden yerel MySQL sunucusuna bağlanılamıyor (2)

LAMBAYI on Ubuntu 12.04 LTS (Precise Pangolin) yükledim ve phpMyAdmin üzerine kök şifresini belirledim. Şifreyi unuttum ve şimdi giriş yapamıyorum. Şifreyi terminalden değiştirmeye çalıştığımda şunu alıyorum:

HATA 2002 (HY000): '/var/run/mysqld/mysqld.sock' soketinden yerel MySQL sunucusuna bağlanılamıyor (2)

Bunu nasıl düzeltebilirim? LAMP'ı açamıyorum, kaldıramıyorum veya yeniden yükleyemiyorum.

356
sushmit sarmah

Bir zamanlar bu sorunu yaşadım ve mysql-server yükleyerek çözdüm, bu nedenle mysql-server dosyasını değil, mysql-client veya başka bir şeyi yüklediğinizden emin olun.

Bu hata, /var/run/mysqld/mysqld.sock dosyasının bulunmadığı anlamına gelir, mysql-server dosyasını yüklememişseniz, o zaman dosya mevcut olmaz. Ancak, mysql-server zaten kurulu ve çalışıyorsa, config dosyalarını kontrol etmeniz gerekir.

Config dosyaları:

/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf

/etc/my.cnf'da soket dosyası yapılandırması /tmp/mysql.sock olabilir ve /etc/mysql/my.cnf öğesinde soket dosyası yapılandırması /var/run/mysqld/mysqld.sock olabilir. Böylece, /etc/mysql/my.cnf dosyasını kaldırın veya yeniden adlandırın, mysql'nin /etc/my.cnf kullanmasına izin verin, sonra sorun çözülebilir.

212
towry

Bunu dene:

mysql -h 127.0.0.1 -P 3306 -u root -p <database>

Ayrıca (çalışıp çalışmadığını görmek için):

telnet 127.0.0.1 3306 

Muhtemelen my.cnf dosyasındaki /etc/somewhere dosyasındaki bir yanlış yapılandırmadır ( Linux dağıtımına ).

172
Yannick

Tüm bu cevapları görüyorum, ancak yok - şifreyi sıfırla ve kabul edilen bir cevap yok seçeneği sunuldu. Asıl soru şu ki unuttu şifresi, bu yüzden bu cevapların çoğunun ima ettiği gibi çalışıp çalışmadığını (kurulup kurulmadığını) görmemesi gerekiyor.


Şifreyi sıfırlamak için

Şu adımları izleyin (şifrenizi gerçekten unutursanız ve şu an durumunuzda olmasanız bile istediğiniz zaman deneyebilirsiniz):

  1. Durdur mysql

    Sudo /etc/init.d/mysql stop
    

    Veya diğer dağıtım versiyonları için:

    Sudo /etc/init.d/mysqld stop
    
  2. MySQL'i güvenli modda başlat

    Sudo mysqld_safe --skip-grant-tables &
    
  3. Kök kullanarak MySQL'e giriş yapın

    mysql -uroot
    
  4. Kullanılacak MySQL veritabanını seçin

    use mysql;
    
  5. Şifreyi sıfırla

    update user set password=PASSWORD("mynewpassword") where User='root';
    
  6. Ayrıcalıkları temizle

    flush privileges;
    
  7. Sunucuyu yeniden başlat

    quit
    
  8. Sunucuyu durdur ve başlat

    Ubuntu ve Debian:

    Sudo /etc/init.d/mysql stop
    ...
    Sudo /etc/init.d/mysql start
    

    CentOS, Fedora ve RHEL’de:

    Sudo /etc/init.d/mysqld stop
    ...
    Sudo /etc/init.d/mysqld start
    
  9. Yeni bir şifre ile giriş yap

    mysql -u root -p
    
  10. Yeni şifreyi yazın ve hiçbir şey olmamış gibi sunucunuzun keyfini tekrar çıkarın

Bu, Bir MySQL kök şifresini sıfırla konumundan alınmıştır.


Aşağıdaki Daniel @ yorumundan alınan güncelleme:

MySQL 5.7'de, mysql.user tablo alanındaki şifre alanı kaldırıldı ve şimdi alan adı 'authentication_string' oldu, bu yüzden 5. adım şöyle olmalı:

 update user set authentication_string=password('mynewpassword') where user='root';
101
davejal

Aşağıdaki adımları denedim:

  1. super user olarak giriş yapın veya Sudo kullanın
  2. gedit kullanarak /etc/mysql/my.cnf dosyasını açın.
  3. bind-address dosyasını bulun ve değerini veritabanı sunucusu Ana Makine'nin IP adresine değiştirin. Benim için localhost veya 127.0.0.1 oldu
  4. Dosyayı kaydedin ve kapatın.
  5. Terminale geri dönün ve Sudo service mysql start komutunu çalıştırın

Ve benim için çalıştı.

61
rshahriar

Bu komutu aşağıdaki komutu çalıştırarak düzelttim:

mysql.server start

Ve eğer bir mac üzerinde ve mysql yüklemek için demlemek kullanıyorsanız, sadece kullanın:

brew services start mysql
36
sbodanis

Ben de benzer bir problem yaşadım. mysql başlamadı:

Sudo service mysql start
start: Job failed to start

Apparmor'u devre dışı bırakırsam:

Sudo aa-complain /etc/apparmor.d/*

sorun çözüldü. Sorun şu ki, mysqld/run/mysqld/mysqld.sock dosyasına erişmeye çalışıyordu, ancak apparmor profili sadece /var/run/mysqld/mysqld.sock dosyasına izin verdi (/ var/run,/run için symlinked. aynısı). Neden tüm yapılandırma dosyalarında ayarlanan olduğundan dolayı mysqld'in var yolunu kullanmadığından emin değilim, ancak /etc/apparmor.d/usr.sbin.mysqld dosyasına şunu ekleyerek sorunu çözebilirsiniz.

/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,
29
dkoes

Bunu mysql işlemini öldürerek çözdüm:

ps -ef | grep mysql
kill [the id]

Sonra sunucuyu tekrar ile başlattım:

Sudo /etc/init.d/mysql restart

Ancak start de çalışır:

Sudo /etc/init.d/mysql start

Sonra admin olarak giriş yaptım ve bitirdim.

27
Wartari

Benim durumumda bu disk doluydu ve mysqld artık başlayamadı.

MySQL hizmetini yeniden başlatmayı deneyin.

hizmet mysql yeniden başlatma

veya

hizmet mysql durdur

hizmet mysql başlangıç

"Dur" komutunu tanımıyorsa, o zaman kesinlikle disk alanıdır. MySQL tahsis edilmiş bölümünde biraz boşluk bırakmalı ya da diski büyütmelisiniz.

İle disk alanını kontrol edin

df -h

26
Martin Schultz

Bir şekilde MySQL sunucusu işlemi soketi yaratmadı ya da istemci soketi yanlış yerde arıyor.

İlk önerim, MySQL sunucusunun çalışıp çalışmadığını kontrol etmektir. İkinci öneri olabilir, MySQL sunucusu başka bir ana bilgisayarda mı çalışıyor? Öyleyse, -h <hostname> bayrağını terminaldeki MySQL istemcinize ekleyin.

MySQL gerçekten çalışıyorsa ve yerel olarak çalışıyorsa, my.cnf dosyanızı kontrol edin. Gibi bir çizgi olmalı

socket = /var/run/mysqld/mysqld.sock

Yazınızda belirttiğiniz soket konumuyla aynı olup olmadığına bakın.

Tecrübelerime göre, en olası senaryo MySQL sunucunuz ya hiç çalışmıyor ya da MySQL istemcinizi terminalden çalıştırdığınız aynı Host'ta çalışmıyor.

19
Wouter

Üretim sunucumu yeniden başlatmak zorunda kaldıktan sonra da aynı sorunu yaşadım. DigitalOcean damlacıkları üzerinde Debian 8.1 (Jessie) kullanıyorum.

Sorunumu çözmek için yaptığım şey buydu:

  1. /var/run/mysqld/mysqld.sock dosyasının var olup olmadığını kontrol edin. Olmazsa, touch /var/run/mysqld/mysqld.sock (elimden geleni yaptım) girerek el ile oluşturun.

  2. Böylece MySQL işlemi bu dosyayı kullanabilir. chown mysql /var/run/mysqld/mysqld.sock girerek adı geçen dosyanın sahipliğini değiştirin.

  3. '2' yapıldıktan sonra, service mysql restart veya /etc/init.d/mysql restart girerek MySQL hizmetini yeniden başlatın.

Yukarıdaki adımlara geçtikten sonra sorunum çözüldü. Nadiren bu sorunla karşılaşıyorum ve muhtemelen daha iyi bir yol var, bu yüzden elbette yapıcı geri bildirimde bulunun :).

18
Rob

MySQL sunucunuz çalışmıyor olabilir. Terminalde mysql.server start yazarak çalıştığından emin olun.

15
Moses Wasswa

İşte benim için çalıştı ne:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart

Bu bir bağlantı oluşturur.

11
User

My.cnf içindeki "bind-adress" parametresini kontrol edin.

Başka bir komutla deneyin:

mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h Host 127.0.0.1 için, yani

  • -P (__P büyük harf olarak bildirir) port 3306 için

11
Amit Girme

Amazon EC2 kullanıyorsanız ve bu durumda bu sorunu yaşıyorsanız, yalnızca yapmanız gereken:

Sudo yum install mysql-server
Sudo service mysqld restart

Amazon EC2'de yüklü bir sunucu yok (yalnızca istemci yüklü), bu nedenle örneğinize yüklemeniz gerekebilir ve denemeden sonra

 mysql -u root -p

i̇şe yarayıp yaramadığını kontrol etmek için.

10

Sanırım hatayı ne zaman alırsan

ERROR 2002 (HY000): '/var/lib/mysql/mysql.sock' soketi üzerinden yerel MySQL sunucusuna bağlanılamıyor

Öncelikle mysql daemon'unuzun çalışıp çalışmadığını kontrol etmenizi öneririm ... Çoğu zaman varsayılan olarak çalışmaz. /etc/init.d/mysqld status ile kontrol edebilirsiniz.

Çalışmıyorsa, önce başlatın:

.../etc/init.d/mysqld start.

% 110 işe yarayacağına bahse girerim.

9

Localhost kullanmak yerine:

mysql -u myuser -pmypassword -h localhost mydatabase

127.0.0.1 kullanın

mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase

(ayrıca not, -p ve mypassword arasında boşluk yok)

Keyfini çıkarın :)

9
mpinvidio

Önemli veritabanlarının yedeklerini aldığınızdan emin olun ve ardından MySQL ile ilgili bilgileri kaldırmayı deneyin:

apt-get remove --purge mysql\*

Sonra tekrar kurun :

apt-get install mysql-server mysql-client

Bu benim için çalıştı ve veri tutuldu.

PHP MySQL hataları gösteriyorsa yeniden yüklemeniz gerekebilir _ PHP MySQL :

apt-get install php5-fpm php5-mysql
8
user3162468

Linux makinenize XAMPP kurulu ise, my.cnf dosyanızı /opt/lampp/etc/my.cnf'dan /etc/my.cnf'a kopyalamayı deneyin.

Ardından, mysql -u root programını tekrar çalıştırın ... Artık doğru sokete sahip olmanız ve MySQL istemcisini çalıştırabilmeniz gerekir.

7
Toni Widiarto

Ben de bu sorunu var, ama ben sadece yaptım

Sudo service mysql restart 

Benim için çalıştı.

7
Kenny Ong

ÇÖZÜM KURULDU

Ateş etmeden önce komutu: mysql_secure_installation

  • 1. Adım: Sudo systemctl stop mariadb
  • 2. Adım: Sudo systemctl start mariadb
  • Adım 3: mysql_secure_installation

Ardından root şifresini sorar ve basitçe - Enter tuşlarına basıp yeni root şifrenizi ayarlayabilirsiniz.

6
sagar mahajan

Benim durumumda bazı Ar-Ge yaparak çalıştı:

Kullanarak MySQL'e bağlanabiliyorum

root-debian#mysql -h 127.0.0.1 -u root -p

Ama mysql -u root -p ile çalışmıyor.

my.cnf içinde hiçbir bind-address bulamadım. Bu yüzden socket=/var/lib/mysql/mysqld.sock parametresindeki my.cnf parametresini geçersiz kıldım, bu da oturum açma ile ilgili bir soruna neden oldu.

Hizmeti yeniden başlattıktan sonra iyi gitti:

[email protected]:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)
6
Swapna Kumar

Benim durumumda, varsayılan port 3306 başka bir işlem tarafından kullanılıyordu ve bu yüzden başlamadı. Diğer hizmeti durdurduktan ve Sudo service mysql start yaptıktan sonra, iyi çalıştı. BTW, portu kimin kullandığını görmek için Sudo lsof -Pn -iTCP:3306 gibi bir şey kullanabilirsiniz.

6
Bhaskar

Terminali açın ve şunu yazın:

Sudo apt-get purge mysql-client-core-5.6

Sudo apt-get autoremove

Sudo apt-get autoclean

Sudo apt-get install mysql-client-core-5.5

Sudo apt-get install mysql-server  

Hem MySQL veritabanı çekirdek istemcisi hem de MySQL Server paketleri aynı sürüm 5.5 olacaktır. MySQL Client 5.5 ve MySQL Server 5.5, bu paketlerin Ubuntu 14.04'teki mevcut "en iyi" versiyonlarıdır.

MySQL Client 5.6 ve MySQL Server 5.6'yı kurmak istiyorsanız, Ubuntu Yazılım Merkezi'nde mysql-client-core-5.6 ve mysql-server-5.6 paketlerini de bulabilirsiniz. Önemli olan, istemci ve sunucu sürüm numaralarının her iki durumda da eşleşmesidir.

Bu benim için çalıştı.

5
Akshay

Eğer kurulumunuz yakın bir zamanda yapılıyorsa, kurulumunuzun SUNUCU ... olarak mysql-server-5.5 olduğunu onaylamanız gerekir.

5
Leandro Souza

Benim durumumda, koşarken mysql sürecini gerçekten öldüremediğim anlaşılıyor.

Sudo service mysql stop
ps -ef | grep mysql

MySQL işlemi her zaman oradaydı, soket dosyasını engelliyor gibi görünüyor ve yeni MySQL işlemi onu oluşturamadı.

yani bu yardımcı oldu

cd /var/run
Sudo cp mysqld/ mysqld.bc -rf
Sudo chown mysql:mysql mysqld.bc/
Sudo service mysql stop
Sudo cp mysqld.bc/ mysqld -rf
Sudo chown mysql:mysql mysqld -R
Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

Şimdi kullanarak veritabanına giriş yapabiliyorum

mysql -u root

Ardından root şifresini güncellemek için:

UPDATE user SET authentication_string=password('YOURPASSWORDHERE') WHERE user='root';
FLUSH PRIVILEGES;

PS: Root passwod'unu güncellerken sorun yaşadım, "auth_socket" eklentisiyle ilgili sorun gibi görünüyordu, bu yüzden tam ayrıcalıklara sahip yeni bir kullanıcı oluşturmam gerekiyor

insert into user set `Host` = "localhost", `User` = "super", `plugin` = "mysql_native_password", `authentication_string` = NULL, `password_expired` = "N", `password_lifetime` = NULL, `account_locked` = "N", `Select_priv` = "Y",
`Insert_priv` = "Y", `Update_priv` = "Y", `Delete_priv` = "Y", `Create_priv` = "Y", `Drop_priv` = "Y", `Reload_priv` = "Y", `Shutdown_priv` = "Y", `Process_priv` = "Y", `File_priv` = "Y",
`Grant_priv` = "Y",  `References_priv` = "Y", `Index_priv` = "Y", `Alter_priv` = "Y", `Show_db_priv` = "Y", `Super_priv` = "Y", `Create_tmp_table_priv` = "Y", `Lock_tables_priv` = "Y",
`Execute_priv` = "Y", `Repl_slave_priv` = "Y",  `Repl_client_priv` = "Y",  `Create_view_priv` = "Y", `Show_view_priv` = "Y", `Create_routine_priv` = "Y", `Alter_routine_priv` = "Y",
`Create_user_priv` = "Y",  `Event_priv` = "Y", `Trigger_priv` = "Y", `Create_tablespace_priv` = "Y";

Bu parola olmadan kullanıcı "super" oluşturur ve sonra mysql -u super ile bağlanabilirsiniz

5
Buksy

Deneyime göre, sunucunun önce çalışıp çalışmadığını kontrol etmeniz ve ardından MySQL'i yapılandırmaya çalışmanız gerektiğini söylüyorum. Son çözüm MySQL'i yeniden kurmak.

5
elmaazouz

Debian sunucusu Jessie'de çalışma çözümüm basitçe yapmaktı.

service mysql restart
service mysql reload

kök kullanıcı olarak

5
Thomas Webber

Ben de aynı sorunu yaşadım. Bazen bu, MySQL servisiniz kapalıysa gerçekleşir.

Öyleyse başlatmak zorundasın:

Sudo service mysql start
5
Rahul Mohanraj

Ben de aynı sorunla karşı karşıyayım, eğer mysql server'nuz varsayılan olarak çalışmıyorsa, bazı saniyeler sonra tekrar duracak, eğer tekrar çalıştırırsanız ($ Sudo service mysql start) komutunu biliyorsanız değiştirebilirsiniz.

bu kullanım komutu için

$ Sudo service mysql start   

(gerekirse Sudo kullandığımız için kullanıcı şifresini girin) ve sonra çalıştırın

$ Sudo mysql -u root -p          (put user password if required )

şimdi veritabanını aldın

5
Roko
mysqld stop
mysql.server start
5
vimx

Şuan çalışıyor...

Bu sorunun üstesinden gelmek içinMac OS X'te MariaDB 10.1.16'yı Homebrew ile yüklemedersini takip ettim.

Ama eski MariaDB kurulumunu öldürmeyi ya da kaldırmayı unutma.

4
Hany Sakr

mysql restart ile bu sorunu çözdü

/etc/init.d/mysql stop

ve

/etc/init.d/mysql start

bu kadar.

4
Jazuly

Ben de aynı problemi yaşadım. Çok araştırdıktan sonra cevap bulamadım.

Sonunda, /tmp dizinini kontrol ettim ve izinleri 755 idi. İzinlerini 777 olarak değiştirdim ve mysqld sorunsuz bir şekilde başladı.

4
shgnInc

Ubuntu 14.04 (Trusty Tahr) için de aynı.

XAMPP'yi kurduysanız, mysql-server'ı kurmak çözüm değildir, çünkü başka bir MySQL'e erişeceksiniz!

Erişmek için doğru soketi kullanmanız gerekir. Genellikle bu:

/opt/lampp/var/mysql/mysql.sock

Bunun yerine, değiştirin:

/var/run/mysqld/mysqld.sock
4
Luca122131

Doğru haklara sahip olup olmadığınızı kontrol edin:

Sudo chmod 755 /var/lib/mysql/mysql

Aynı sorunları yaşadım ve bu benim için çalıştı. Bunu yaptıktan sonra MySQL'i başlatmayı başardım.

4
user3599321

Sunucu depom doluydu, bu Mysql'in başlamasını engelliyordu. buradaki fikrinden haberim var. HD'yi artırmak ve yeniden başlatmak sorunu çözdü.

2
Dawoodjee

İlk önce, servisin çalışıp çalışmadığını kontrol edebilirsiniz:

ps ax | grep mysql

Bu cevabı aldım:

6104 pts/0    S      0:00 /bin/sh /usr/bin/mysqld_safe
6431 pts/0    Sl     0:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/m

Yanıt yok, hizmetin çalışmadığı anlamına gelir;

service  mysql start
2
Amos Kosgei

Sadece /opt/lampp/etc/my.cnf dosyanızı /etc/mysql/my.cnf dosyasına kopyalayın.

Ve terminal tipinde:

mysql -u root

mysql> İstemi alacaksınız:

mysql> Update mysql.user set Password=PASSWORD('your_password') where user='root';

mysql> FLUSH PRIVILEGES;
2

Açıklayamam, ama 12.04.2'den sonra kubuntu'da

Sudo apt-get otomatik başlık linux-başlıklar-3.2.0-37

çalışmaya başladı

2
alsator

/ Var/run/mysqld dizini oluşturma izniniz eksik. Öyleyse lütfen aşağıdaki şekilde izin verin.

  • mkdir -p/var/run/mysqld
  • chown mysql: mysql/var/run/mysqld
2
Namjith Aravind

Benim için bir güncelleme sorunu çözdü:

Ubuntu'da:

Sudo apt-get update
Sudo apt-get upgrade

CentOS'ta:

Sudo yum update
2
mFlorin

MySQL sunucusunu kurun:

Sudo apt-get install mysql-server
enter password as root

Oturum aç:

mysql -u root -p root

Burada MySQL sunucusunu kurarken -u user name ve -p password verildi. Benim için çalıştığı gibi çalışacak.

2
Mohit Singh

Benim durumumda sorun tüm veritabanlarımda sayfa bozulmasıydı (mysql hata günlüğünü kontrol et).

Bunu Forcing InnoDB Recovery ile çözdüm. Hile /etc/mysql/my.cnf dosyasını düzenlemek ve eklemek

innodb_force_recovery = 4

hemen aşağıda

[mysqld]

Ve sonra MySQL'i yeniden başlatın. Her şeyi kontrol ettikten sonra şimdi doğru bir şekilde çalışıyorsa, çizgiyi tekrar kaldırın.

2
Michiel
For CentOS Linux release 7.3
The mysql.sock file path is /var/lib/mysql/mysql.sock
Edit /etc/my.cnf file and put below entry
This will solve your problem.

[client]
user=root
password=Passw0rd
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
bind-address=0.0.0.0

Bundan sonra hizmeti yeniden başlatın

service mysql restart
2

Bu cevap, az miktarda RAM olan makinelerde MySQL 5.6'ya güncelleme ile ilgilidir.

Debian 8'imde (Jessie) MySQL 5.5'ten 5.6'ya yükseltme yaparken aynı sorunu yaşadım. MySQL başlatılmadı (durum aktif/çıkıldı gösteriyordu) ve service mysql start işlevini yapmadı, çünkü /var/logs/mysql/error.log günlük dosyasında bulduğum gibi:

InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool

Bellek yeterli değildi: Sadece 256 MB RAM'im vardı.

MySQL'de bir ayar var, performance_schema. Varsayılan olarak, MySQL 5.5'te kapalıdır.

https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html

Ancak MySQL 5.6'da varsayılan ayar açıktır ve sadece /etc/mysql/my.cnf dosyasına aşağıdaki satırı ekleyerek ve yeniden başlatarak çalıştı.

performance_schema = off

Uyarı: Bu ayarı kapatmak, performans sorunlarıyla karşılaşabilirsiniz, ancak geliştirme ortamında sorun olmayacağını düşünüyorum.

Ayrıca, MySQL'in minimum bellek kullanacak şekilde yapılandırılması yararlı olabilecek bir makale, MySQL'in minimum bellek kullanacak şekilde yapılandırılması.

1
dav

Ubuntu kullanıyorsanız, bu bir ayrıcalık meselesi olabilir.

Dizin ayrıcalıklarınızı kontrol edin. Kök grupta olmak yeterli değildir, ayrıca MySQL'in yazdığı dizinlerde bir chmod kullanın (örneğin, /var/run/mysqld/ dosyasının oluşturulması için mysqld.pid).

Bu benim için yardımcı oldu.

1
blackpanther

Sunucuyu yeniden başlatmayı deneyin.

Sudo /usr/local/mysql/support-files/mysql.server start

Herhangi bir hata varsa aşağıdaki adımları izleyin.

  1. mysqldname__

Aşağıdaki günlüğü göreceksiniz. Burada MySQL dizininin vurgulanan kısmına dikkat edin

mysqld: '/usr/local/mysql-5.7.14-osx10.11-x86_64/data/'dizini değiştiremezsiniz (Hata: 13 - İzin reddedildi) 2016-10-04T14: 09: 19,392581 Z 0 [Uyarı] ZAMANLI DEFAULT değeri olan TIMESTAMP kullanımdan kaldırılmıştır.Lütfen --explicit_defaults_for_timestamp sunucu seçeneğini kullanın (daha fazla bilgi için belgelere bakın) 2016-10-04T14: 09: 19.392847Z 0 [Uyarı] --Güvenli dosya için güvenli olmayan yapılandırma -priv: Geçerli değer oluşturulan dosyaların konumunu kısıtlamaz .. Geçerli, boş olmayan bir yola ayarlamayı düşünün 2016-10-04T14: 09: 19.392921Z 0 [Not] mysqld (mysqld 5.7.14) 1402 işleminden başlayarak ... 2016-10-04T14: 09: 19.397569Z 0 [Uyarı] Test dosyası oluşturulamıyor
/Usr/yerel/MySQL-5.7.14-osx10.11-x86_64/veri/Sudharshan.lower test
2016-10-04T14: 09: 19.397597Z 0 [Uyarı] Test dosyası oluşturulamıyor/usr/local/mysql-5.7.14-osx10.11-x86_64/data/Sudharshan.lower-test
2016-10-04T14: 09: 19.397712Z 0 [ERROR], /usr/local/mysql-5.7.14-osx10.11-x86_64/data/ olarak datadir öğesini ayarlayamadı.
2016-10-04T14: 09: 19.397776Z 0 [HATA] Durdurma
2016-10-04T14: 09: 19.397795Z 0 [Not] Binlog sonu
2016-10-04T14: 09: 19.397925Z 0 [Not] mysqld: Kapatma tamamlandı

  1. Sudo chown -R _mysql:_mysql /usr/local/mysql-5.7.14-osx10.11-x86_64

Önceki günlüğündeki MySQL klasör yolunu / usr/localve benim durumumda mysql-5.7.14-osx10.11-x86_64, ve makinenizde aldığınız günlüğe göre güncelleyinmakinenizde okuma erişimiMySQL dizinine

  1. Sudo /usr/local/mysql/support-files/mysql.server start

MySQL'i Başlatma
BAŞARI!

1
Sudharshan

Ayrıca my.conf (/etc/mysql/my.cnf) kodunuzu kontrol edin ve adres adresinin 127.0.0.1 olarak ayarlanmış olup olmadığına bakın.

Aksi halde, bu soruna neden olabilir.

1
BonifatiusK

Benim için öyleydi:

/etc/mysql/my.cnf veya /etc/my.cnf dosyasını açın ve 'adres adresini' arayın. 127.0.0.1 idi. Ben bunu localhost'a dönüştürdüm, bu yüzden satır sonucu 'bind-address = localhost' olmalı.

Aksi takdirde, MySQL sunucunuzu, adres adresi direktifinde bulunan bir IP adresiyle çalıştırmalısınız, yani mysql -h 127.0.0.1.

1
Omar Alahmed

Şimdi sadece bu problemi yaşadım ve çözdüm.

Mysql-server'ı kurmuş olsanız da, istemcinin bağlanabilmesi için arka plan programının çalışıyor olması gerekir.

MySQL sunucusunun çalışıp çalışmadığını görmek için ilk kontrol edin:

netstat -tap | grep mysql

Böyle bir şey görmelisin:

$ Sudo netstat -tap | grep mysql
tcp        0      0 localhost:mysql         *:*          LISTEN     6639/mysqld     

Sunucunuz çalışmıyorsa, aşağıdaki komutu kullanarak daemon'u başlatın:

/etc/init.d/mysql restart

Eğer kurulu ise bu probleminizi çözmelidir.

1
user1527227

Sunucumda basit bir çözüm: MySQL veritabanlarım ile yeni bir Debian 7 sunucusuna geçtikten sonra, ikinci -yerel IP adresi, 127.0.1.1, hosts dosyamda yoktu. Bunu eklemek şu uyarıları çözdü:

echo -e "\n127.0.1.1       $(hostname)" >> /etc/hosts
1
rubo77

Sorunun ortaya çıkmasını önlemek için, sunucuyu kapatmak yerine sunucuyu komut satırından zarif bir şekilde kapatmanız gerekir.

shutdown -h now

Bu, makineyi kapatmadan önce çalışan hizmetleri durduracaktır.

Centos'a dayanarak, bu sorunla karşılaştığınızda tekrar geri almak için ek bir yöntem mysql.sock öğesini taşımaktır:

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

service mysqld start

Hizmeti yeniden başlatmak, mqsql.sock adlı yeni bir giriş oluşturur.

1
Ali Hashemi

Yerel olarak çalışıyorsanız, istemciniz sunucunuzla aynı makinede çalışıyor demektir.

Unix kullanıcınızın gerçekten /var/run/mysqld/mysqld.sock dosyasına erişebildiğinden emin olun:

ls -als /var
ls -als /var/run
ls -als /var/run/mysqld
ls -als /var/run/mysqld/mysqld.sock

Değilse, bu dizinlere yeterli okuma/yürütme erişimi sağlamak için soket dosyasını başka bir yere taşımak için sistem yöneticinize veya veritabanı yöneticinize dan danışın.

1
TVNshack

Ben de aynı sorunu yaşadım. Bunu buldum.

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

Bunun nedeni, MySQL istemcisini başlatmadan önce mysqld arka planını çalıştırmıyor olmanızdır. MySQL'in ilk örneğini çalıştırdığınızda /var/lib/mysql/mysql.sock dosyası otomatik olarak oluşturulur.

Düzeltmek:

Önce MySQL arka plan programını başlatın, ardından mysql:

/etc/init.d/mysqld start
mysql

MySQL Kök Şifresini Değiştirme

Varsayılan olarak, root şifresi MySQL veritabanı için boştur. Güvenlik açısından MySQL root şifresini yenisiyle değiştirmek iyi bir fikirdir.

mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Tamamlandıktan sonra, giriş yaparak kontrol edin:

mysql -u root -p
Enter Password: <your new password>
1
user3742084
Sudo touch /var/lib/mysql/.force_upgrade
Sudo rcmysql restart

bu sorun olduğunda benim için çalıştı

0
t0dbld

Bu hata, veritabanının depolandığı dizini değiştirmeye çalışırsanız, ancak yapılandırma dosyasında yanlış dizini yerleştirmeye çalışırsanız (ikinci sürücüdeki bir yazım hatası gibi, doğru D_ yerine D olarak) ekleyin. Yazım hatası dizini olmadığını söylemek yerine, erişme izniniz olmadığını söyler (yazım dizini izinlerini değiştirmeye çalışmanıza neden olur). Bu nedenle, dizinleri değiştirirken bu hatayı alırsanız, yapılandırma dosyasını iki kez kontrol edin ve yazım hatası olmadığından emin olun.

0
Michael

LAMPP'ın çalışıp çalışmadığını kontrol ettiniz mi?

Sudo bash <path>/lampp start

Benim için yol

Sudo bash /opt/lampp/lampp start
0
thecheech

Ben de bu problemi yaşıyordum ve bu cevapların hiçbiri bana yardımcı olmadı. Sorun farklıydı, ancak hata OP tarafından açıklandı.

MySQL'in günlüklerini /var/log/mysql içinde kontrol ettim ve şunu gördüm:

150309  5:03:19 [ERROR] /usr/sbin/mysqld: unknown variable   'lower_case_tables_names=1'

/etc/mysql/my.cnf dosyasını açtım ve bu satırın # değerini aştım. Bunu yaptıktan sonra veritabanına bağlanmayı başardım.

Açıkçası sorunun ne olduğunu bilmiyorum. Linode sunucusunun bakım nedeniyle yeniden başlatılması planlandı ve bu hata hiçbir yerden çıkmadı.

0
Camauu

Grubun sahibini /var/run/mysqld için doğrulamalısınız. mysql.mysql değilse, yapın:

su root
chown mysql.mysql /var/run/mysqld

Yapılandırma dosyasında bir sorun olabilir. Ben de benzer bir problem yaşadım ve internette bir çözüm bulamadım. Biri my.cnf'da, diğeri /etc/mysql'da iki /etc dosyamın olduğunu fark ettim. Aşağıdaki adımları takip et:

  1. Bilgisayarınızda my.cnf kullanarak locate my.cnf dosyalarını kontrol edin.

  2. İki giriş varsa, örneğin /etc/my.cnf ve /etc/mysql/my.cnf, /etc/mysql/my.cnf ismini başka bir şeyle değiştirin; örneğin, /etc/mysql/my.cnf.old

MySQL'i tekrar çalıştırmayı deneyin.

0
enowman

Benim durumum sadece çünkü /var/log/mysql içinde tanımlanan eksik /etc/mysql/my.cnf klasörü nedeniyle mysql durduruldu. Oluşturduktan sonra mysql başlatabilir ve her zamanki gibi koştu.

0
ownking

MySQL’i yükseltmek benim için düzeltti. RHEL tabanlı sunucularda, yalnızca şunu çalıştırın:

Sudo yum upgrade mysql-server
0
sffc

Bu satırı mysqld bölümünde ([mysqld]) /etc/mysql/my.conf 'dan kaldırarak bu sorunu çözdüm:

default-character-set=utf8

Yeniden başlatın ve iyi çalışıyor.

0
aotero

Bunu Ubuntu'da yaptım ve anladığım gibi, birden fazla mysqld örneği vardı.

Yenisi çoktan başlamışken, öncekileri tamamen durdurmamış gibi görünüyordu. '/Etc/init.d/mysql stop' komutunun çalıştırılması işe yaramadı, her zaman 'Tamam'ı getirdi ve hemen sonra otomatik olarak yeni bir örnek başlatıldı:

        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28315
        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28570
        $ Sudo /etc/init.d/mysql stop
         * Stopping MySQL database server mysqld        [ OK ] 
        $ pgrep mysql
        28763
        ..... etc ...

Neyse ki, aşağıdaki komut sorunu çözdü:

    $ Sudo service mysql stop
    mysql stop/waiting

    $ ps -ef | grep mysql
    29841 26858  0 10:59 pts/8    00:00:00 grep --color=auto mysql <--- IT's gone ! 

Ondan sonra mysql'i tekrar başlatıp mysql.sock'un başarıyla oluşturulduğunu görebildim.

0
Oleg Gryb

Bir öneri: Daima sorunun ne olduğunu MySQL'e sorun. Benim durumumda less /var/log/mysql/error.log ve şunu görün:

2015-07-28 12:01:48 23224 [ERROR] /usr/sbin/mysqld: unknown variable 'log_slow_queries=/var/log/mysql/mysql-slow.log'
2015-07-28 12:01:48 23224 [ERROR] Aborting

Şikayet ediyor, çünkü bu seçeneği my.cnf'da uncommented, ancak bu seçeneği yorumladıktan sonra sorunsuz bir şekilde başladı.

0
K-Gun

/etc/mysql/my.cnf içinde son satırı kontrol edin:

!includedir /etc/mysql/conf.d/
0
FS Karimi

Bu cevabın burada boğulması muhtemeldir, ancak belki birileri yanlışlıkla üzerine tökezler.

Benim durumumda SELinux, kullanıcının/uygulamanın MySQL (MariaDB) sunucu soketine bağlanmasını engelledi. SELEL'i etkinleştirdiyseniz, RHEL'de /var/log/audit/audit.log öğesini kontrol edin.

0
Richlv

Ubuntu 18:10 Linode 1GB Ram, bu hatayı yaşadım. /Var/log/mysql/error.log dosyasını inceledikten sonra şunu gördüm:

[Not] InnoDB: innodb_empty_free_list_algorithm, arabellek havuzu boyutunun küçük olması nedeniyle eski durumuna getirildi. Geri çekilmeyi kullanmak için arabellek havuzunu en az 20 MB'a kadar artırın.

Düğümü 2 GB'ye yükselttim ve Sudo mysql ile mariadb'ı yeniden başlattım. Sonraki mysql_secure_admin çalıştırıldı, ancak root şifresi, kullanıcı olarak ususl birimi olarak ayarlanmadı, mysql_native_password eklentisini kullanmak için root kullanıcısını değiştirdi. Emin değilim, ancak çorapın oluşturulduğu anlaşılıyor, ancak VPS'mde bellek yetersizliği nedeniyle sunucu kapanıyor.

0
uberdave