Ini seharusnya sederhana, tetapi saya tidak bisa membuatnya bekerja untuk kehidupan saya.
Saya hanya mencoba menghubungkan dari jauh ke server MySQL saya.
menghubungkan as
mysql -u root -h localhost -p
berfungsi dengan baik, tetapi berusaha
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.user
tabel, ada entri yang sama persis untuk pengguna 'root' dengan host 'localhost' dengan yang lain dengan host '%'.
Aku kehabisan akal, dan tidak tahu bagaimana melanjutkan. Setiap ide dipersilakan.
mysql
mysql-error-1130
concept47
sumber
sumber
Jawaban:
Mungkin tindakan pencegahan keamanan. Anda dapat mencoba menambahkan akun administrator baru:
Meskipun seperti yang dikatakan Pascal dan yang lainnya, bukan ide bagus untuk memiliki pengguna dengan akses semacam ini terbuka untuk IP apa pun. Jika Anda memerlukan pengguna administratif, gunakan root, dan tinggalkan di localhost. Untuk tindakan lain, tentukan dengan tepat hak yang Anda butuhkan dan batasi aksesibilitas pengguna seperti yang disarankan Pascal di bawah ini.
Edit:
Dari FAQ MySQL:
sumber
Kita harus membuat
new MySQL User
dan menetapkan hak istimewa seperti di bawah iniQuery prompt
melalui phpMyAdmin atau command prompt:Setelah selesai dengan keempat pertanyaan, itu harus terhubung
username / password
sumber
@localhost
membuat masuk akal jika keistimewaannya berbeda entah bagaimana tapi di sini mereka sama dan mungkin akan lebih membingungkan daripada apa pun (seperti mengubah kata sandi yang satu tidak menyadari yang lain ada dan bahwa login Anda mungkin mengenai yang satu itu ).Pesan kesalahan saya mirip dan mengatakan ' Host XXX tidak diizinkan untuk terhubung ke server MySQL ini ' meskipun saya menggunakan root. Inilah cara memastikan bahwa root memiliki izin yang benar.
Pengaturan saya :
Larutan
Cek untuk:
Sekarang akses Database MySQL di server Anda yang sebenarnya (mis. Alamat jarak jauh Anda adalah 123.123.123.123 di port 3306 sebagai 'root' pengguna dan saya ingin mengubah izin pada 'dataentry' database. Ingatlah untuk mengubah Alamat IP, Port, dan nama basis data ke pengaturan Anda)
sudo service restart mysqld
sumber
use dataentry
(karena kebanyakan orang tidak akan membuat database itu).mysql
layanan pada akhirnyaFLUSH PRIVILEGES
seharusnya memungkinkan Anda untuk tidak perlu memulai ulang.Anda perlu memberikan akses kepada pengguna dari nama host apa pun.
Ini adalah bagaimana Anda menambahkan hak istimewa baru dari phpmyadmin
Hak Istimewa Goto> Tambahkan Pengguna baru
Pilih Semua Host untuk nama pengguna yang diinginkan
sumber
Lakukan saja langkah-langkah berikut:
1a) Terhubung ke mysql (via localhost)
1b) Jika server myslq berjalan di Kubernetes (K8s) dan sedang diakses melalui NodePort
2) Buat pengguna
3) Berikan izin
4) Hak istimewa flush
sumber
Pesan tersebut
*Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
adalah balasan dari server MySQL ke klien MySQL. Perhatikan bagaimana cara mengembalikan alamat IP dan bukan nama host.Jika Anda mencoba terhubung
mysql -h<hostname> -u<somebody> -p
dan mengembalikan pesan ini dengan alamat IP, maka server MySQL tidak dapat melakukan pencarian terbalik pada klien. Ini penting karena itulah cara memetakan klien MySQL ke hibah.Pastikan Anda dapat melakukan
nslookup <mysqlclient>
DARI server MySQL. Jika itu tidak berhasil, maka tidak ada entri di server DNS. Atau, Anda dapat memasukkan entri dalam file HOSTS server MySQL (<ipaddress> <fullyqualifiedhostname> <hostname>
<- Urutan di sini mungkin penting).Entri dalam file host server saya yang memungkinkan pencarian balik dari klien MySQL menyelesaikan masalah ini.
sumber
Cara sederhana:
kemudian
selesai!
sumber
WHERE CustomerName LIKE 'a%'
- Menemukan nilai apa pun yang dimulai dengan "a"Jika Anda mengubah tabel hibah secara manual (menggunakan INSERT, PEMBARUAN, dll.), Anda harus menjalankan
FLUSH PRIVILEGES
pernyataan untuk memberi tahu server untuk memuat ulang tabel hibah.PS: Saya tidak akan merekomendasikan untuk mengizinkan host mana pun terhubung untuk pengguna mana pun (terutama bukan
root
penggunaannya). Jika Anda menggunakan mysql untuk aplikasi klien / server, lebih suka alamat subnet. Jika Anda menggunakan mysql dengan server web atau server aplikasi, gunakan IP tertentu.sumber
Cukup gunakan antarmuka yang disediakan oleh Alat GUI MySql (SQLyog):
Klik pada Manajer pengguna:
Sekarang, jika Anda ingin memberikan akses UNTUK PC REMOTE LAINNYA, pastikan saja, seperti pada gambar di bawah ini, nilai bidang Host adalah% (yang merupakan wildcard)
sumber
Sebagian besar jawaban di sini menunjukkan Anda membuat pengguna dengan dua nilai host: satu untuk
localhost
, dan satu untuk%
.Harap dicatat bahwa kecuali untuk pengguna host lokal bawaan seperti root, Anda tidak perlu melakukan ini. Jika Anda hanya ingin membuat pengguna baru yang dapat masuk dari mana saja, Anda dapat menggunakannya
dan itu akan bekerja dengan baik. (Seperti yang disebutkan orang lain, itu adalah ide yang buruk untuk memberikan hak administratif kepada pengguna dari domain apa pun.)
sumber
cara sederhana adalah dengan login ke phpmyadmin dengan akun root, ada goto database mysql dan pilih tabel pengguna, ada edit akun root dan di bidang host tambahkan% wild card. dan kemudian melalui hak istimewa siram ssh
sumber
Jika ini adalah pemasangan mysql baru-baru ini, maka sebelum mengubah apa pun, coba jalankan perintah ini dan kemudian coba lagi:
Ini saja memperbaiki masalah bagi saya di Ubuntu 16.04, mysql 5.7.20. YMMV.
sumber
Temukan saja cara yang lebih baik untuk melakukannya dari panel kontrol hosting Anda (Saya menggunakan DirectAdmin di sini)
cukup buka DB server target di panel kontrol Anda, dalam kasus saya: Manajemen MySQL -> pilih DB Anda -> Anda akan menemukan: "Access Hosts", cukup tambahkan host jarak jauh Anda di sini dan berfungsi sekarang!
Saya kira ada opsi serupa pada C.panels lain seperti plesk, dll.
Saya harap ini juga membantu Anda.
sumber
Yah, tidak ada jawaban di atas yang bekerja untuk saya. Setelah banyak penelitian, saya menemukan solusinya. Meskipun saya mungkin terlambat, ini dapat membantu orang lain di masa depan.
Login ke server SQL Anda dari terminal
Ini harus menyelesaikan masalah izin.
Selamat coding !!
sumber
Nah yang bisa Anda lakukan hanyalah membuka file mysql.cfg dan Anda harus mengubah Bind-address untuk ini
bind-address = 127.0.0.1
dan kemudian Restart mysql dan Anda akan dapat menghubungkan server itu ke ini.
Lihat ini, Anda dapat memiliki ide bentuk itu.
ini sol nyata
sumber
Jika Anda menjalankan pada Windows; Solusi sederhana adalah dengan menjalankan wizard konfigurasi instance server MySQL. Itu ada di grup MYSQL Anda di menu mulai. Pada layar kedua dari terakhir klik kotak yang bertuliskan "izinkan akses root dari mesin jarak jauh".
sumber
Jika Anda memiliki WAMP Server + Windows 10 dan Anda menggunakannya untuk pengembangan daripada Klik Kanan pada Wamp Icon =>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
sumber
Saya juga menghadapi masalah yang sama. Saya menyelesaikannya dalam 2 menit bagi saya, saya hanya daftar putih ip melalui cpanel
Misalkan Anda mencoba menghubungkan database server B dari server A. Pergi ke Server B Cpanel-> Remote MySQL-> masukkan Server A Alamat IP dan hanya itu.
sumber
Jawaban ini mungkin membantu seseorang ...
Semua jawaban ini tidak membantu, maka saya menyadari saya lupa untuk memeriksa satu hal penting .. Port :)
Saya memiliki mysql berjalan dalam wadah buruh pelabuhan yang berjalan di port yang berbeda. Saya menunjuk ke mesin host saya di port 3306, yang saya punya server mysql berjalan. Kontainer saya memperlihatkan server pada port 33060. Jadi selama ini, saya melihat server yang salah! lakukan!
sumber
kesalahan ini karena tidak ada kata sandi ke root, dan ini mungkin terjadi pada Anda ketika Anda mencoba terhubung dari luar.
sumber
Solusi CPANEL
Pergi ke Cpanel, cari Remote MySQL. Tambahkan IP di bidang input:
Host (% wildcard diizinkan)
Komentar untuk mengingat IP apa itu. Itu untuk saya.
sumber
Ini berfungsi untuk koneksi mysql jarak jauh di masa mendatang!
Arahkan ke garis yang dimulai dengan arahan alamat-bind. Seharusnya terlihat seperti ini:
Login ke mysql Anda sebagai terminal root
akhirnya Berikan mesin eksklusif itu izin untuk terhubung ke database jarak jauh dengan perintah berikut.
sumber
Jika seseorang yang mengalami masalah ini mengalaminya dari dalam SQLyog, ini terjadi:
Saya telah terhubung ke basis data jauh (dari dalam SQLyog) dan bekerja selama beberapa jam. Setelah itu saya meninggalkan sistem selama beberapa menit, lalu kembali untuk melanjutkan pekerjaan saya - KESALAHAN 1130 ! Tidak ada yang saya coba bekerja; Restart SQLyog tidak memperbaikinya. Lalu saya me-restart sistem - itu masih tidak berhasil.
Jadi saya mencoba menghubungkan dari terminal - itu berhasil. Kemudian coba lagi di SQLyog ... dan berhasil. Saya tidak bisa menjelaskannya selain 'quirkiness komputer acak', tetapi saya pikir itu bisa membantu seseorang.
sumber
jika Anda mencoba untuk mengeksekusi query mysql withouth mendefinisikan connectionstring, Anda akan mendapatkan kesalahan ini.
Mungkin Anda lupa mendefinisikan string koneksi sebelum eksekusi. sudahkah kamu memeriksanya? (maaf untuk bahasa Inggris yang buruk)
sumber
Masalah: root @ localhost tidak dapat terhubung ke instalasi baru server mysql-komunitas di openSUSE 42.2-1.150.x86_64. Mysql menolak koneksi - titik.
Larutan:
Pengguna file.MYD memiliki ukuran 0 (sungguh?!). Saya menyalin semua 3 file dari sistem kerja lain.
Saya bisa masuk. Kemudian, itu hanya masalah menerapkan kembali semua hak istimewa skema. Juga, jika Anda menonaktifkan IPv6, aktifkan kembali sementara sehingga akun root @ :: 1 juga dapat berfungsi.
sumber
Ini berfungsi untuk DirectAdmin ;
DirectAdmin
.MySQL Management
.database
.Accesse Host
tab Anda , ada bidang. Anda harus mengisi kolom ini denganxxx.xx.xxx.xx
.Add Host
.Jadi. Sekarang Anda dapat mengakses DB ini dengan
your_database_username
& Andayour_database_password
.Sangat sederhana!
sumber
Semua jawaban di sini tidak berfungsi untuk saya, jadi saya harap ini dapat membantu pengguna lain di masa mendatang. Ini juga bisa menjadi masalah dalam kode kita, bukan hanya di MySQL saja.
Jika Anda menggunakan
VB.NET
Alih-alih kode ini:
Anda harus pindah
MysqlConn = New MySqlConnection()
di baris pertama. Jadi akan seperti inisumber