Saya mengetahui perintah ini:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
Tapi kemudian itu hanya memungkinkan saya untuk memberikan alamat IP tertentu untuk mengakses database MySQL jarak jauh ini. Bagaimana jika saya menginginkannya agar host jarak jauh dapat mengakses database MySQL ini? Bagaimana aku melakukan itu? Pada dasarnya saya membuat basis data ini publik sehingga semua orang dapat mengaksesnya.
Jawaban:
% adalah wildcard - Anda juga dapat melakukan
'%.domain.com'
dan'%.123.123.123'
dan hal-hal seperti itu jika diperlukan.sumber
-h my_machine_name
parameter. Ini menipu klien untuk mengidentifikasi Anda sebagai'user'@my_machine_name.example.com
, bukan'user'@localhost
. Dengan cara ini Anda tidak perlu membuat dan mengelola akun ganda dan hibah untuk keduanyalocalhost
dan akses jaringan. Dan, tentu saja, harus yakinmysqld
pasti0.0.0.0
vs127.0.0.1
.Aktifkan Remote Access (Grant) Beranda / Tutorial / Mysql / Aktifkan Remote Access (Grant) Jika Anda mencoba untuk terhubung ke server mysql Anda dari mesin jarak jauh, dan mengalami kesalahan seperti di bawah ini, artikel ini adalah untuk Anda.
Ubah konfigurasi mysql
Mulailah dengan mengedit file konfigurasi mysql
Komentari baris berikut.
Jika Anda tidak menemukan jalur lewati jaringan, tambahkan dan komentari.
Mulai ulang server mysql.
Ubah hak istimewa GRANT
Anda mungkin terkejut melihat bahkan setelah perubahan di atas Anda tidak mendapatkan akses jarak jauh atau mendapatkan akses tetapi tidak dapat ke semua database.
Secara default, nama pengguna dan kata sandi mysql yang Anda gunakan diizinkan untuk mengakses server mysql secara lokal. Jadi perlu memperbarui hak istimewa.
Jalankan perintah seperti di bawah ini untuk mengakses dari semua mesin. (Ganti
USERNAME
danPASSWORD
oleh kredensial Anda.)Jalankan perintah seperti di bawah ini untuk memberikan akses dari IP tertentu. (Ganti
USERNAME
danPASSWORD
oleh kredensial Anda.)Anda dapat mengganti 1.2.3.4 dengan IP Anda. Anda dapat menjalankan perintah di atas berkali-kali untuk memberikan akses dari beberapa IP.
Anda juga dapat menentukan terpisah
USERNAME
&PASSWORD
untuk akses jarak jauh.Anda dapat memeriksa hasil akhir dengan:
Terakhir, Anda mungkin juga perlu menjalankan:
Tes koneksi
Dari terminal / command-line:
Jika Anda mendapatkan shell mysql, jangan lupa untuk menjalankan show show; untuk memeriksa apakah Anda memiliki hak istimewa dari mesin jarak jauh.
Tip-Bonus: Cabut Akses
Jika Anda secara tidak sengaja memberikan akses ke pengguna, lebih baik gunakan opsi pencabutan.
Berikut ini akan mencabut semua opsi untuk USERNAME dari semua mesin:
Jika Anda melihat hak istimewa USAGE setelah menjalankan perintah REVOKE, tidak masalah. Ini sama baiknya dengan tidak ada hak istimewa sama sekali. Saya tidak yakin apakah itu dapat dicabut.
sumber
/etc/mysql/mysql.conf.d/mysqld.cnf
file alih-alih/etc/mysql/my.cnf
mengomentaribind-address
bagian tersebut. The#skip-networking
garis hilang dan tidak boleh ada pengaruh penambahan dan komentar baris./etc/mysql/mariadb.conf.d/50-server.cnf
3306
atau port mana pun yang telah Anda siapkanDengan asumsi bahwa langkah di atas selesai dan port MySql 3306 bebas untuk diakses dari jarak jauh; Jangan lupa untuk mengikat alamat ip publik di file konfigurasi mysql.
Misalnya di server ubuntu saya:
Dalam file tersebut, cari blok bagian [mysqld] dan tambahkan alamat bind yang baru, dalam contoh ini adalah 192.168.0.116. Akan terlihat seperti ini
Anda dapat menghapus localhost (127.0.0.1) yang mengikat jika Anda memilih, tetapi kemudian Anda harus secara khusus memberikan alamat IP untuk mengakses server pada mesin lokal.
Kemudian langkah terakhir adalah me-restart server MySql (di ubuntu)
atau
#/etc/init.d/mysql restart
untuk sistem lainSekarang database MySQL dapat diakses dari jarak jauh dengan:
sumber
/etc/init.d/mysql reload
harus mencukupibind-address
direktif menentukan alamat IP bahwa mysql server yang mendengarkan pada; bukan alamat IP tempat server menerima koneksi.bind-address
localhost atau alamat remotehost.mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Bagi siapa saja yang meraba-raba, di sini adalah bagaimana saya harus memberikan hak istimewa, berharap itu membantu seseorang
Seperti disebutkan
%
adalah wildcard dan ini akan memungkinkan alamat IP apa pun untuk terhubung ke database Anda. Asumsi yang saya buat di sini adalah ketika Anda terhubung Anda akan memiliki nama penggunaroot
(yang merupakan defaultnya). Masukkan kata sandi root dan Anda siap melanjutkan. Perhatikan bahwa saya tidak memiliki tanda kutip tunggal ('
) di sekitar root pengguna.sumber
Diperlukan perubahan file konfigurasi untuk mengaktifkan koneksi melalui localhost.
Untuk terhubung melalui IP jarak jauh, Masuk sebagai pengguna "root" dan jalankan kueri di bawah ini di mysql.
Ini akan membuat pengguna baru yang dapat diakses di localhost dan juga dari IP jarak jauh.
Berikan komentar pada baris di bawah ini dari file my.cnf Anda yang terletak di /etc/mysql/my.cnf
Mulai ulang mysql Anda menggunakan
Sekarang Anda harus dapat terhubung dari jarak jauh ke mysql Anda.
sumber
Gunakan perintah ini:
Kemudian:
Kemudian komentari baris di bawah ini dalam file "/etc/mysql/mysql.conf.d/mysqld.cnf" (diperlukan!):
Bekerja untukku!
sumber
your-password-does-not-satisfy-the-current-policy-requirements
Agar dapat terhubung dengan pengguna Anda dari alamat IP apa pun, lakukan hal berikut:
Izinkan server mysql untuk menerima koneksi jarak jauh. Untuk file mysqld.conf buka ini:
Cari baris yang dimulai dengan "bind-address" dan atur nilainya menjadi 0.0.0.0
dan akhirnya simpan file tersebut.
Catatan: Jika Anda menjalankan MySQL 8+,
bind-address
arahan tidak akan ada dalammysqld.cnf
file secara default. Dalam hal ini, tambahkan arahan ke bagian bawah file/etc/mysql/mysql.conf.d/mysqld.cnf
.Sekarang restart server mysql, baik dengan
systemd
atau gunakanservice
perintah yang lebih lama . Ini tergantung pada sistem operasi Anda:Akhirnya, server mysql sekarang dapat menerima koneksi jarak jauh.
Sekarang kita perlu membuat pengguna dan memberinya izin, sehingga kita bisa masuk dengan pengguna ini dari jarak jauh.
Terhubung ke database MySQL sebagai root, atau pengguna lain dengan privilege root.
sekarang buat pengguna yang diinginkan di localhost dan '%' wildcard dan berikan izin pada semua DB.
Kemudian,
Dan akhirnya jangan lupa untuk menyiram hak istimewa
Catatan: Jika Anda telah mengkonfigurasi firewall di server database Anda, Anda juga perlu membuka port port
3306
default MySQL untuk memungkinkan lalu lintas ke MySQL.Semoga ini membantu ;)
sumber
Jalankan yang berikut ini:
Kemudian coba koneksi dari alamat IP yang Anda tentukan:
Anda harus dapat terhubung.
sumber
Anda dapat menangani masalah MariaDB melalui perintah ini :
catatan:
%
adalah wildcard. Dalam hal ini, ini merujuk ke semua alamat IP.sumber
sumber
Untuk mengakses jauh server database Mysql 8:
sumber
Jika Anda menjalankan instance EC2 jangan lupa untuk menambahkan aturan masuk dalam grup keamanan dengan MYSQL / Aurura.
sumber
Edit File:
/etc/mysql/percona-server.cnf
Tambahkan kode di bawah ini dalam file.
[mysqld] bind-address = 0.0.0.0
Buat pengguna untuk akses jarak jauh.
Semua server linux berfungsi,
Untuk MSWin c: \ Temukan lokasi penyimpanan \ path file
sumber
Cukup buat pengguna ke beberapa basis data seperti
GRANT ALL PRIVILEGES ON <database_name>.* TO '<username>'@'%' IDENTIFIED BY '<password>'
Lalu pergi ke
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
dan ubah barisbind-address = 127.0.0.1
kebind-address = 0.0.0.0
Setelah itu Anda dapat terhubung ke database itu dari IP apa pun.
sumber
Buka
mysql console
dan jalankan perintah berikut (masukkan nama database, nama pengguna, dan kata sandi Anda):Kemudian Jalankan:
Buka baris perintah dan buka file
/etc/mysql/mysql.conf.d/mysqld.cnf
menggunakan editor apa saja denganroot privileges
.Sebagai contoh:
Kemudian komentari baris di bawah ini:
Mulai ulang mysql untuk mencerminkan perubahan menggunakan perintah:
Nikmati ;)
sumber
Anda perlu mengubah file konfigurasi mysql:
Mulailah dengan mengedit file konfigurasi mysql
Menambahkan:
sumber
Di panel situs web seperti cPanel, Anda dapat menambahkan satu
%
(tanda persentase) dalam nama host yang diizinkan untuk mengakses database MySQL Anda.Dengan menambahkan satu
%
Anda dapat mengakses database Anda dari IP atau situs web apa pun bahkan dari aplikasi desktop.sumber
Misalnya di CentOS saya
komentari baris berikut
kemudian
sumber
Jika Anda ingin memberikan akses jarak jauh dari basis data Anda dari alamat IP apa pun, jalankan perintah mysql dan setelah itu jalankan perintah berikut.
sumber
apa yang bekerja untuk Ubuntu adalah memberikan semua hak istimewa kepada pengguna:
dan mengatur alamat ikat di
/etc/mysql/mysql.conf.d/mysqld.cnf
:kemudian restart daemon mysql:
sumber
Anda dapat menonaktifkan semua keamanan dengan mengedit /etc/my.cnf:
sumber