File / etc / hosts saya terlihat seperti ini:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Saya menemukan ketika membangun server, bahwa walaupun saya bisa melakukan ping localhost dengan sukses, dalam file konfigurasi tertentu untuk layanan seperti Postfix dan Apache dan Dovecot, saya perlu menentukan 127.0.0.1
alih-alih localhost
untuk membuatnya berfungsi.
Saya juga perlu mengubah file konfigurasi situs web yang didorong oleh basis data tertentu, yang digunakan localhost
untuk terhubung ke MySQL.
Saya telah mencoba berbagai modifikasi pada hosts
file tersebut, tetapi sejauh ini belum ada yang saya coba.
Server menjalankan Ubuntu 12.04.02 LTS. Itu tidak memiliki selinux diinstal dan situasi di atas tetap bahkan setelah menetapkan kebijakan standar IPtables untuk menerima dan membilas mereka.
127.0.0.1
(kecuali untuk satu yang%
). Saya pikir ini mungkin mengungkapkan cukup bagi saya untuk memperbaikinya, jadi saya mungkin akan menerima jawaban Anda dalam waktu singkat.localhost
sebagaisocket
gantiTCP
).Sebagian besar klien MySQL aneh dalam kenyataan bahwa jika Anda menentukan host sebagai
localhost
, mereka alias itu untuk koneksi soket bukan koneksi TCP. Opsi Anda adalah tetap dengan127.0.0.1
atau, jika klien mendukungnya (seperti biner CLI mysql tidak dengan--protocol
bendera), memaksanya untuk menggunakan TCP bukan soket unix.sumber
127.0.0.1
alih-alihlocalhost
di bidang hostname selama instalasi, itu menyebabkan jalur instalasi menjadi kacau memberi saya kesalahan lain, tetapi menentukan localhost gagal menghubungkan database! Apa yang menyebabkan situasi ini? Mengapa saya memilikinya?socket = /var/run/mysqld/mysqld.sock
dimy.cnf
dan file yang ada, yang dimiliki oleh mysql dengan izin 777. Terima kasih.127.0.0.1
itu berfungsi (tapi skrip menggunakan entri nanti dan gagal karena mengharapkan nama yang bisa diselesaikan sepertilocalhost
), tetapi jika saya menggunakanlocalhost
, menghubungkan, untuk membuat database, gagal.Satu hal yang perlu diperhatikan jika hibahnya benar adalah jika Anda menggunakan MariaDB ada bug yang menyebabkan perilaku persis ini dalam versi 10.0.1 dan 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356
sumber
Anda dapat memeriksa izin seperti ini:
Jika ini mendengarkan pada 0 0.0.0.0:* itu berarti bahwa setiap orang dapat mengakses mysql itu.
Anda dapat mengedit binding untuk ini di file my.conf. Di jalur default linux untuk ini adalah:
Tambahkan baris ini di file my.conf untuk memungkinkan ip yang Anda inginkan.
sumber
PHP masih mencoba menggunakan lokasi soket default. Masalah ini dapat muncul jika Anda telah memindahkan folder MariaDB / MySQL dari / var / lib / mysql ke lokasi lain. Untuk menyelesaikan masalah Anda harus menentukan lokasi soket baru di file /etc/php.ini .
sumber
Saya memecahkan masalah ini dengan membuat symlink
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
,. Tapi pertama-tama saya harus membuat folder/var/run/mysqld/
karena folder itu tidak ada pada awalnya.sumber
Anda memerlukan mysql.sock di / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
harus bekerja dengan baik setelah itu.
sumber