MEMBUAT CONSTRAINT RELASI PADA MySQL
Isi kandungan:
- Mengkonfigurasi MySQL Server
- Memberi Akses kepada Pengguna dari Mesin Jauh
- Mengkonfigurasi Firewall
- Iptables
- UFW
- FirewallD
- Mengesahkan Perubahan
- Kesimpulannya
Secara lalai, pelayan MySQL mendengar untuk sambungan hanya dari localhost, yang bermaksud ia boleh diakses hanya oleh aplikasi yang berjalan pada tuan rumah yang sama.
Walau bagaimanapun, dalam beberapa situasi, adalah perlu untuk mengakses pelayan MySQL dari lokasi yang jauh. Sebagai contoh, apabila anda ingin menyambung ke pelayan MySQL jauh dari sistem tempatan anda, atau semasa menggunakan penyebaran pelbagai pelayan di mana aplikasi berjalan pada mesin yang berbeza dari pelayan pangkalan data. Satu pilihan adalah untuk mengakses pelayan MySQL melalui SSH Tunnel dan yang lain adalah untuk mengkonfigurasi pelayan MySQL untuk menerima sambungan jauh.
Dalam panduan ini, kami akan melalui langkah-langkah yang diperlukan untuk membolehkan sambungan jauh ke pelayan MySQL. Arahan yang sama berlaku untuk MariaDB.
Mengkonfigurasi MySQL Server
Langkah pertama adalah untuk menetapkan pelayan MySQL untuk mendengar alamat IP tertentu atau semua alamat IP pada mesin.
Jika pelayan dan klien MySQL boleh berkomunikasi antara satu sama lain melalui rangkaian persendirian, maka pilihan terbaik adalah untuk menetapkan pelayan MySQL untuk mendengar hanya pada IP peribadi. Jika tidak, jika anda ingin menyambung ke pelayan melalui rangkaian awam, setkan pelayan MySQL untuk mendengar semua alamat IP pada mesin.
Untuk melakukannya, anda perlu mengedit fail konfigurasi MySQL dan menambah atau mengubah nilai pilihan
bind-address
. Anda boleh menetapkan satu alamat IP dan julat IP. Jika alamat adalah
0.0.0.0
, pelayan MySQL menerima sambungan pada semua antara muka IPv4 hos. Jika anda mempunyai IPv6 yang dikonfigurasikan pada sistem anda, maka bukannya
0.0.0.0
, gunakan
::
.
Lokasi fail konfigurasi MySQL berbeza bergantung kepada pengedaran. Di Ubuntu dan Debian failnya terletak di
/etc/mysql/mysql.conf.d/mysqld.cnf
, manakala di Red Hat berasaskan pengedaran seperti CentOS, fail tersebut terletak di
/etc/my.cnf
.
Buka fail dengan editor teks anda:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Cari baris yang bermula dengan
bind-address
dan tetapkan nilainya ke alamat IP yang mana pelayan MySQL patut didengar.
Secara lalai, nilai ditetapkan kepada
127.0.0.1
(hanya didengar di localhost).
Dalam contoh ini, kami akan menetapkan pelayan MySQL untuk mendengar semua antara muka IPv4 dengan menukar nilai kepada
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
Sekiranya terdapat baris yang mengandungi
skip-networking
, hapuskan atau komenkannya dengan menambahkan
#
di awal baris.
Dalam MySQL 8.0 dan lebih tinggi, arahan
bind-address
mungkin tidak hadir. Dalam kes ini, tambahkannya di bawah
seksyen.
Sebaik sahaja selesai, mulakan semula perkhidmatan MySQL untuk perubahan yang akan dilaksanakan. Hanya root atau pengguna dengan keistimewaan sudo boleh memulakan semula perkhidmatan.
Untuk memulakan semula perkhidmatan MySQL pada Debian atau Ubuntu, taipkan:
sudo systemctl restart mysql
Pada pengedaran berasaskan RedHat seperti CentOS untuk memulakan semula larian perkhidmatan:
Memberi Akses kepada Pengguna dari Mesin Jauh
Langkah seterusnya adalah untuk membolehkan akses kepada pangkalan data kepada pengguna jauh.
Log masuk ke pelayan MySQL sebagai pengguna root dengan menaip:
sudo mysql
mysql -uroot -p
Dari dalam shell MySQL, gunakan pernyataan
GRANT
untuk memberikan akses kepada pengguna jauh.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Di mana:
-
database_nameadalah nama pangkalan data yang akan disambungkan kepada pengguna.user_nameadalah nama od pengguna MySQL.ip_addressadalah alamat IP dari mana pengguna akan menyambungkannya. Gunakan%untuk membenarkan pengguna menyambung dari mana-mana alamat IP.user_passwordadalah kata laluan pengguna.
Sebagai contoh, untuk memberikan akses kepada
dbname
pangkalan data kepada pengguna bernama
foo
dengan kata laluan
my_passwd
dari mesin klien dengan IP
10.8.0.5
, anda akan menjalankan:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Mengkonfigurasi Firewall
Langkah terakhir ialah mengkonfigurasi firewall anda untuk membenarkan trafik pada port
3306
(port lalai MySQL) dari mesin jauh.
Iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Benarkan akses dari alamat IP tertentu:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW adalah alat firewall lalai di Ubuntu. Untuk membenarkan akses dari mana-mana alamat IP di Internet (sangat tidak selamat) dijalankan:
sudo ufw allow 3306/tcp
Benarkan akses dari alamat IP tertentu:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD adalah alat pengurusan firewall lalai di CentOS. Untuk membenarkan akses dari mana-mana alamat IP di Internet (sangat tidak selamat) jenis:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
Untuk membenarkan akses dari alamat IP tertentu pada port tertentu, anda boleh membuat zon FirewallD baru atau menggunakan peraturan yang kaya. Baik buat zon baru bernama
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
Mengesahkan Perubahan
Untuk mengesahkan bahawa pengguna jauh boleh menyambung ke pelayan MySQL, jalankan arahan berikut:
mysql -u user_name -h mysql_server_ip -p
Di mana
user_name
adalah nama pengguna yang anda berikan akses dan
mysql_server_ip
adalah alamat IP host di mana pelayan MySQL dijalankan.
Sekiranya semuanya disiapkan dengan betul, anda akan dapat log masuk ke pelayan MySQL jauh.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Kesalahan di bawah menunjukkan bahawa pengguna yang anda cuba log masuk tidak mempunyai keizinan untuk mengakses pelayan MySQL jauh.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
Kesimpulannya
MySQL, pangkalan pangkalan data pangkalan data yang paling popular secara lalai, mendengar untuk sambungan masuk hanya pada localhost.
Untuk membenarkan sambungan jauh ke pelayan MySQL, anda perlu melakukan langkah-langkah berikut:
- Konfigurasi pelayan MySQL untuk mendengar semua atau antaramuka tertentu. Akses Geran kepada pengguna jauh. Buka port MySQL di firewall anda.
IBM Beli Pangkalan Data Keselamatan Pangkalan Data Guardium
IBM telah membeli penjaga keselamatan pangkalan data Guardium untuk jumlah yang tidak didedikasikan
Pengurus Sambungan Desktop Jauh: Mengurus sambungan desktop pelbagai jarak jauh
Pengurus Sambungan Desktop Microsoft Remote atau RDCMan menguruskan beberapa sambungan desktop jauh dan berguna untuk menguruskan makmal pelayan
Menggunakan aplikasi desktop jauh di windows 8 untuk sambungan jauh
Ketahui Cara Menyediakan Dan Gunakan Apl Desktop Jauh di Windows 8 Untuk Sambungan Jauh.







