Host 'xxx.xx.xxx.xxx' tidak diperbolehkan untuk terhubung ke server MySQL
Ini harus mati sederhana, tapi aku tidak bisa mendapatkan itu untuk bekerja untuk kehidupan saya. I'm hanya mencoba untuk melakukan koneksi remote ke server MySQL saya.
menghubungkan sebagai
mysql -u root -h localhost -p
bekerja dengan baik, tapi mencoba
mysql -u root -h 'any ip address here' -p
gagal dengan kesalahan
ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
Di mysql.pengguna` meja, ada yang sama persis entri untuk pengguna 'root' dengan host 'localhost' seperti yang lain dengan host '%'.
I'm di akal saya' end, dan tidak tahu bagaimana untuk melanjutkan. Setiap ide yang datang.
622
24
Mungkin tindakan pencegahan keamanan. Anda bisa mencoba menambahkan account administrator baru:
Meskipun seperti Pascal dan lain-lain telah mencatat itu's bukan ide yang bagus untuk memiliki pengguna dengan akses terbuka untuk setiap IP. Jika anda membutuhkan administrasi pengguna, menggunakan akar, dan meninggalkannya di localhost. Untuk setiap tindakan yang menentukan hak-hak istimewa yang anda butuhkan dan membatasi aksesibilitas pengguna seperti Pascal telah menunjukkan di bawah ini.
Edit:
Dari MySQL FAQ:
Satu telah untuk membuat
new User MySQL
dan menetapkan hak-hak seperti di bawah ini diQuery prompt
melalui phpMyAdmin atau command prompt:Setelah selesai dengan semua empat pertanyaan, itu harus terhubung dengan
username / password
Saya pesan kesalahan yang sama dan mengatakan 'Host XXX tidak diperbolehkan untuk terhubung ke server MySQL' meskipun saya menggunakan root. Berikut ini's bagaimana untuk memastikan bahwa akar memiliki izin yang benar.
Setup saya:
Solusi
mysql -u root -p Masukkan password: mysql>GRANT ALL ON . untuk root@'123.123.123.123' DIIDENTIFIKASI OLEH 'put-your-password'; mysql>FLUSH PRIVILEGES; mysql>exit
Anda perlu memberikan akses kepada pengguna untuk setiap nama host.
Ini adalah bagaimana anda tambahkan baru keistimewaan dari phpmyadmin
Goto Hak > Add a new User
Pilih Setiap Host untuk username yang diinginkan
Hanya melakukan langkah-langkah berikut:
Pesan
*Host ''xxx.xx.xxx.xxx'' tidak diperbolehkan untuk terhubung ke MySQL server
adalah balasan dari server MySQL dengan MySQL client. Melihat bagaimana mengembalikan alamat IP dan hostname.Jika anda're berusaha untuk menghubungkan dengan
mysql -h<hostname> -u<orang> -p
dan ia mengembalikan pesan ini dengan alamat IP, maka server MySQL isn't dapat melakukan reverse lookup pada klien. Hal ini penting karena thats bagaimana hal itu maps MySQL client untuk hibah.Pastikan anda dapat melakukan
nslookup <mysqlclient>
DARI MySQL server. Jika itu doesn't bekerja, maka ada's tidak ada entri di DNS server. Atau, anda dapat menempatkan sebuah entri di MySQL server's file HOST (<ipaddress> <fullyqualifiedhostname> <hostname>
<- order di sini mungkin dalam hal ini).Sebuah entri di server saya's file host yang memungkinkan reverse lookup dari MySQL client memecahkan masalah ini sangat.
Jika anda memodifikasi tabel hibah secara manual (menggunakan INSERT, UPDATE, dll.), anda harus menjalankan a
FLUSH PRIVILEGES
pernyataan untuk memberitahu server untuk reload tabel hibah.PS: saya tidak't merekomendasikan untuk memungkinkan setiap host untuk menghubungkan untuk setiap pengguna (terutama yang tidak
root
use). Jika anda menggunakan mysql untuk aplikasi klien/server, lebih memilih alamat subnet. Jika anda menggunakan mysql dengan web server atau aplikasi server, gunakan Ip tertentu.Cara sederhana:
kemudian
selesai!
Sebagian besar dari jawaban-jawaban berikut ini menunjukkan anda membuat pengguna dengan dua host nilai-nilai: satu untuk
localhost
, dan satu untuk%
.Harap dicatat bahwa kecuali untuk built-in localhost user seperti root, anda don't perlu untuk melakukan hal ini. Jika anda hanya ingin membuat user baru yang dapat masuk dari mana saja, anda dapat menggunakan
dan itu akan bekerja dengan baik. (Seperti orang lain telah disebutkan,'s merupakan ide yang buruk untuk memberikan hak akses administratif ke pengguna dari setiap domain.)
Hanya menggunakan antarmuka yang disediakan oleh MySql's GUI Tool (SQLyog):
Klik pada User manager:
Sekarang, jika anda ingin memberikan akses UNTUK SETIAP PC REMOTE, pastikan bahwa, seperti di bawah gambar, Host bidang nilai % (yang merupakan wildcard)
cara yang mudah adalah untuk login ke phpmyadmin dengan akun root , ada goto mysql database dan pilih tabel user , ada edit akun root dan di lapangan tuan rumah menambah % wild card . dan kemudian melalui ssh flush privileges
Hanya menemukan cara yang lebih baik untuk melakukan itu dari control panel hosting anda (saya'm menggunakan DirectAdmin di sini)
hanya pergi ke target server DB di panel kontrol anda, dalam kasus saya: Manajemen MySQL -> pilih DB -> anda akan menemukan: "Akses Host", cukup tambahkan remote host di sini dan bekerja sekarang!
Saya kira ada pilihan yang sama di lain C. panel seperti plesk, dll.
I'm berharap itu membantu anda terlalu.
Jika hal ini baru-baru ini menginstal mysql, maka sebelum mengubah apa pun, hanya mencoba untuk menjalankan perintah ini dan kemudian mencoba lagi:
Ini saja perbaikan masalah untuk saya di Ubuntu 16.04, mysql 5.7.20. YMMV.
Nah apa yang dapat anda lakukan adalah hanya membuka mysql.cfg dan anda harus mengubah Bind-address ini
bind-address = 127.0.0.1
dan kemudian Restart mysql dan anda akan dapat untuk menghubungkan server ini.
Melihat ini, anda dapat memiliki gagasan bentuk yang.
ini adalah nyata sol
Jika anda kebetulan berjalan pada Windows, Sebuah solusi sederhana adalah untuk menjalankan MySQL server instance configuration wizard. Hal ini di MYSQL grup di start menu. Pada bagian kedua dari layar terakhir klik kotak yang bertuliskan "memungkinkan akses root dari mesin remote".
CPANEL solusi
Pergi ke Cpanel, mencari Remote MySQL. Tambahkan IP di bidang input:
Host (% wildcard diperbolehkan)
Komentar untuk mengingat apa IP yang. Itu untuk saya.
Pada kesempatan off bahwa seseorang menghadapi masalah ini mengalami itu dari dalam SQLyog, hal ini terjadi:
Saya telah terhubung ke remote database (dari dalam SQLyog) dan bekerja selama beberapa jam. Setelah itu saya meninggalkan sistem untuk beberapa menit, kemudian datang kembali untuk melanjutkan pekerjaan saya - KESALAHAN 1130 ! Apa-apa saya mencoba bekerja; Restart SQLyog tidak't memperbaikinya. Kemudian saya restart sistem - masih tidak't bekerja.
Jadi saya mencoba menghubungkan dari terminal - itu bekerja. Kemudian diulangi lagi pada SQLyog ... dan itu berhasil. Saya dapat't menjelaskan hal lain dari 'random komputer quirkiness', tapi saya pikir itu bisa membantu seseorang.
Ini bekerja untuk DirectAdmin;
DirectAdmin
.MySQL Manajemen
.database
.Accesse Host
tab, ada sebuah lapangan. Anda harus mengisi field ini denganxxx.xx.xxx.xx
.Add Host
.Selesai. Sekarang anda bisa akses ke DB dengan
your_database_username
&your_database_password
. Begitu Sederhana!Jawaban ini mungkin bisa membantu seseorang...
Semua jawaban ini tidak membantu, kemudian aku sadar bahwa aku lupa untuk memeriksa satu hal yang penting.. port :)
Saya telah mysql yang berjalan di docker container berjalan pada port yang berbeda. Aku menunjuk ke mesin host pada port 3306, yang telah aku mysql server berjalan pada. Saya kontainer memperlihatkan server pada port 33060. Jadi selama ini, saya melihat salah server! doh!
kesalahan ini karena tidak ada password untuk root , dan ini Mungkin terjadi dengan anda ketika anda mencoba untuk menghubungkan dari luar .