Saya dapat dengan mudah memberikan akses ke satu IP menggunakan kode ini:
$ mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
Tetapi saya harus mengizinkan seluruh subnet 192.168.1. * Untuk mengakses database dari jarak jauh.
Bagaimana saya bisa melakukan itu?
Ini Sepertinya Anda juga dapat menggunakan netmask , misalnya
GRANT ... TO 'user'@'192.168.0.0/255.255.255.0' IDENTIFIED BY ...
sumber
192.160.0.34/255.255.255.0
sama dengan192.168.0.34/24
yang tidak terlalu masuk akal (/24
artinya angka terakhir bisa dari 0 hingga 255, mengabaikan nilai 34 Anda). Apakah ini berfungsi jika Anda menggunakan mask yang valid untuk IP, seperti192.168.0.34/255.255.255.252
?Anda hanya akan menggunakan '%' sebagai wildcard Anda seperti ini:
GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
sumber
mysql> GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';
Karakter wildcard adalah "%" bukan "*"
sumber
Sekadar catatan tentang keanehan yang saya hadapi:
Pertimbangkan:
Jika Anda memiliki pengguna yang didefinisikan di mysql.user sebagai
'user'@'192.168.0.102'
dengan password1 dan lainnya'user'@'192.168.0.%'
dengan password2,kemudian,
jika Anda mencoba menyambung ke server db dari server web sebagai 'pengguna' dengan sandi2,
ini akan menghasilkan kesalahan 'Akses ditolak' karena
'user'@'192.168.0.102'
otentikasi IP tunggal digunakan melalui'user'@'192.168.0.%'
otentikasi wildcard .sumber
setelah Anda menghubungkan server dan Anda ingin terhubung ke host Anda, Anda harus melakukan langkah-langkah di bawah ini:
GRANT ALL ON . to root@'write_your_ip_addres' IDENTIFIED BY 'write_password_to_connect'
nano /etc/mysql/my.cnf
service mysql restart
sumber
Termotivasi oleh jawaban @Malvineaus, saya mencobanya sendiri dan memperhatikan bahwa itu tidak berhasil untuk saya.
Anda dapat menentukan subnet mask dengan '192.168.1.%' Atau '192.168.1.0/255.255.255.0' tetapi subnet harus selalu pada oktet lengkap. lihat https://mariadb.com/kb/en/create-user/#host-name-component . Akibatnya fungsionalitas antara satu cara spesifikasi dan cara lainnya adalah sama.
Misalnya '192.168.1.0/255.255.255.128' tidak akan berfungsi karena tidak berada pada batas oktet lengkap.
sumber