Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Koneksi Jarak Jauh Mysql Ubuntu

Untuk mengekspos MySQL ke apa pun selain localhost, Anda harus memiliki baris berikut

Untuk mysql versi 5.6 dan di bawahnya

tidak dikomentari di /etc/mysql/my.cnf dan ditetapkan ke alamat IP komputer Anda dan bukan loopback

Untuk mysql versi 5.7 ke atas

tidak dikomentari di /etc/mysql/mysql.conf.d/mysqld.cnf dan ditetapkan ke alamat IP komputer Anda dan bukan loopback

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Atau tambahkan bind-address = 0.0.0.0 jika Anda tidak ingin menentukan IP

Kemudian berhenti dan restart MySQL dengan entri my.cnf baru. Setelah berjalan pergi ke terminal dan masukkan perintah berikut.

lsof -i -P | grep :3306

Itu akan kembali seperti ini dengan IP Anda yang sebenarnya di xxx's

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Jika pernyataan di atas kembali dengan benar, Anda akan dapat menerima pengguna jarak jauh. Namun agar pengguna jarak jauh dapat terhubung dengan hak istimewa yang benar, Anda harus membuat pengguna tersebut di localhost dan '%' seperti di.

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

lalu,

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

dan akhirnya,

FLUSH PRIVILEGES; 
EXIT;

Jika Anda tidak memiliki pengguna yang sama yang dibuat seperti di atas, saat Anda masuk secara lokal, Anda mungkin mewarisi hak istimewa localhost dasar dan memiliki masalah akses. Jika Anda ingin membatasi akses yang dimiliki pengguna saya maka Anda perlu membaca sintaks pernyataan GRANT DI SINI Jika Anda melewati semua ini dan masih memiliki masalah, posting beberapa keluaran kesalahan tambahan dan baris yang sesuai my.cnf.

CATATAN:Jika lsof tidak kembali atau tidak ditemukan, Anda dapat menginstalnya DI SINI berdasarkan distribusi Linux Anda. Anda tidak perlu lsof untuk membuat sesuatu bekerja, tetapi ini sangat berguna ketika segala sesuatunya tidak berjalan seperti yang diharapkan.

UPDATE:Jika bahkan setelah menambahkan/mengubah bind-address di my.cnf tidak berfungsi, lalu pergi dan ubah di tempat yang semula dinyatakan:

/etc/mysql/mariadb.conf.d/50-server.cnf


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus dari beberapa tabel di MySQL?

  2. Cara Menghapus Spasi Leading dan Trailing di MySQL

  3. Cara Memeriksa Status Server di MySQL Workbench menggunakan GUI

  4. Beberapa pernyataan pilih dalam permintaan tunggal

  5. Driver JDBC MySQL 5.1.33 - Masalah Zona Waktu