Bagaimana cara saya terhubung ke mysql di centos 7?

MySQL adalah sistem database relasional open source yang bekerja pada banyak Sistem Operasi termasuk Windows, Linux, MacOS dan FreeBSD. Ini mungkin RDBMS OpenSource yang paling populer dan komponen utama dari LAMP dan LEMP Stacks. Ada banyak aplikasi yang bergantung pada MySQL seperti Wordpress, Joomla, TYPO3, phpBB dan masih banyak lagi

Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah untuk mengonfigurasi MySQL dengan aman untuk koneksi jarak jauh. Saat Anda perlu mengakses MySQL dari jarak jauh, Anda harus menggunakan VPN karena MySQL tidak mengenkripsi data yang ditransfer atau Anda dapat mengonfigurasi MySQL untuk menggunakan SSL, seperti yang akan saya tunjukkan dalam tutorial ini. Dalam konfigurasi ini, hanya pengguna dengan file sertifikat SSL yang benar yang diizinkan untuk terhubung ke server MySQL, dan lalu lintas dienkripsi. Kami akan menginstal MySQL versi terbaru, dan kemudian mengkonfigurasi SSL untuk koneksi jarak jauh. Untuk sistem dasarnya, saya akan menggunakan server CentOS 7

Apa yang akan kita lakukan

  1. Instal MySQL
  2. Konfigurasi Kata Sandi Root MySQL
  3. Hasilkan File Sertifikat SSL Baru yang Ditandatangani Sendiri
  4. Aktifkan SSL untuk MySQL
  5. Aktifkan Koneksi Jarak Jauh
  6. Pengujian

Prasyarat

  • Server CentOS7
  • Hak istimewa root

Langkah 1 - Instal MySQL

Dalam tutorial ini, kita akan menggunakan MySQL 5. 7, versi terbaru saat ini. Itu diinstal dari repositori MySQL, jadi kita harus menambahkan repositori CentOS baru ke sistem terlebih dahulu

Tambahkan repositori baru untuk MySQL dengan perintah yum di bawah ini

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Anda akan diminta untuk menginstal paket baru, ketik 'y' dan tekan 'Enter' untuk konfirmasi

Sekarang Anda dapat menginstal MySQL versi terbaru 5. 7 ke server seperti ini

yum -y install mysql-community-server
_

Setelah instalasi selesai, mulai layanan MySQL dan aktifkan agar berjalan secara otomatis saat boot dengan perintah systemctl

systemctl start mysqld
systemctl enable mysqld

Pastikan MySQL berjalan dengan memeriksa port yang digunakan oleh MySQL (3306). Periksa dengan perintah netstat di bawah

netstat -plntu

Installing MySQL 5.7 on CentOS 7

MySQL telah diinstal pada CentOS 7 dari repositori MySQL

Langkah 2 - Konfigurasi Kata Sandi Root MySQL

Secara default, MySQL5. 7 menghasilkan kata sandi root default untuk Anda saat memulai layanan pertama kali. Kata sandi disimpan dalam file log MySQL '/var/log/mysqld. catatan'

Untuk melihat password root MySQL default, Anda dapat menggunakan perintah grep di bawah ini

grep 'temporary' /var/log/mysqld.log
_

Anda akan melihat hasil mirip dengan yang di bawah ini, kata sandi default saya adalah 'wxtX8Te&Uh1K'

A temporary password is generated for [email protected]: wxtX8Te&Uh1K

Sambungkan ke shell MySQL dengan kata sandi default dan ganti kata sandi dengan kata sandi Anda sendiri

mysql -u root -p
TYPE IN DEFAULT PASSWORD
_

Sekarang ganti kata sandi default dengan kata sandi Anda sendiri. Dalam tutorial ini, saya akan menggunakan '[email protected]' sebagai kata sandi root MySQL yang baru. Jalankan kueri MySQL di bawah ini

ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
flush privileges;
exit;

Configure MySQL root password on CentOS 7

Sekarang Anda dapat terhubung kembali dengan kata sandi baru '[email protected]'

mysql -u root -p
TYPE NEW PASSWORD '[email protected]'
_

Langkah 3 - Hasilkan File Sertifikat Baru yang Ditandatangani Sendiri

Secara default, MySQL5. 7 memiliki file sertifikat SSL sendiri di direktori '/var/lib/mysql'. Namun dalam tutorial ini, saya akan menunjukkan cara membuat file Sertifikat SSL Anda sendiri dengan OpenSSL, lalu mengonfigurasinya dengan MySQL

Pada langkah ini, kami akan membuat file sertifikat baru yang ditandatangani sendiri. Kami membutuhkan 3 sertifikat, Sertifikat CA, Sertifikat dan Kunci Server, Sertifikat dan Kunci Klien. Kami akan membuatnya dengan OpenSSL

Buat direktori baru untuk file sertifikat SSL '/etc/certs/' dan buka direktori tersebut

mkdir -p /etc/certs
cd /etc/certs
_

Hasilkan sertifikat CA baru ca. pem

yum -y install mysql-community-server
_0

Generate CA Certificate for MySQL

Selanjutnya, kita harus membuat sertifikat sisi server. Buat sertifikat server baru server-cert. pem dan kunci server. file pem. Hasilkan file sertifikat baru, hapus frasa sandi dan tandatangani dengan sertifikat CA

yum -y install mysql-community-server
_1

Generate Server Certificate for MySQL

Sekarang buat file sertifikat untuk klien. Server MySQL hanya akan menerima koneksi jarak jauh dari klien yang memiliki file sertifikat ini. Hasilkan file sertifikat klien baru, hapus frasa sandi dan tandatangani menggunakan sertifikat CA

yum -y install mysql-community-server
_2

Generate Client Certificate for MySQL

Catatan

Info sertifikat CA harus berbeda dari info klien dan server

Semua sertifikat yang kami perlukan untuk penyiapan ini telah dibuat. Sekarang kita dapat memverifikasi file sertifikat dengan perintah di bawah ini

yum -y install mysql-community-server
_3

Pastikan tidak ada error, hasilnya seperti di bawah ini

Verify Certificate FIles for MySQL

Semua file Sertifikat telah diverifikasi. Ubah pemilik direktori sertifikat menjadi pengguna 'mysql' dan ubah izin semua file kunci

yum -y install mysql-community-server
_4

Langkah 4 - Aktifkan SSL untuk MySQL

Pada langkah ini, kami akan mengaktifkan SSL untuk MySQL. Sebelum kita mulai mengonfigurasi dan mengaktifkan SSL di MySQL, kita perlu mencadangkan file sertifikat default ke direktori cadangan baru

Buat direktori cadangan baru 'mysql-certs' untuk semua sertifikat

yum -y install mysql-community-server
_5

Buka direktori '/var/lib/mysql' dan pindahkan semua sertifikat default ke direktori cadangan

yum -y install mysql-community-server
_6

Sekarang restart layanan MySQL

yum -y install mysql-community-server
_7

Backup Default MySQL Certificates to New Backup Directory

Selanjutnya, periksa SSL dari shell MySQL. Login ke mysql dengan kata sandi baru

mysql -u root -p
TYPE NEW PASSWORD '[email protected]'
_

Jalankan kueri di bawah ini agar kami dapat melihat status SSL untuk MySQL

yum -y install mysql-community-server
_9

Anda akan melihat status SSL 'DISABLED', dan pengguna root telah terhubung tanpa SSL

SSL on MySQL Disabled and Root User Connected without SSL

Selanjutnya, kita akan mengaktifkan koneksi SSL untuk MySQL. Kita harus mengedit file konfigurasi MySQL 'my. cnf' dengan vim

systemctl start mysqld
systemctl enable mysqld
0

Di bagian '[mysqld]', rekatkan konfigurasi di bawah ini

systemctl start mysqld
systemctl enable mysqld
1

Simpan file dan keluar dari vim, restart layanan MySQL

yum -y install mysql-community-server
_7

Sekarang login ke MySQL lagi dan periksa SSL

mysql -u root -p
TYPE NEW PASSWORD '[email protected]'
_

Jalankan kueri di bawah untuk memastikan nilai bagian SSL adalah 'YA'

systemctl start mysqld
systemctl enable mysqld
_4

SSL for MySQL Enabled, but Root user still not connected without SSL

Anda akan melihat bahwa SSL untuk MySQL diaktifkan, tetapi pengguna root masih belum terhubung menggunakan koneksi SSL

Untuk memaksa semua koneksi pengguna lokal dengan SSL, edit file konfigurasi mysql 'my. cnf' lagi

systemctl start mysqld
systemctl enable mysqld
0

Rekatkan konfigurasi di bawah ini ke akhir baris

systemctl start mysqld
systemctl enable mysqld
6

Simpan dan keluar, lalu restart MySQL

yum -y install mysql-community-server
_7

Hubungkan ke MySQL lagi dan periksa koneksi dan SSL diaktifkan

systemctl start mysqld
systemctl enable mysqld
_8

SSL is Enabled on MySQL and Root user connected with SSL

SSL telah diaktifkan dan koneksi lokal juga menggunakan SSL

Langkah 5 - Aktifkan Koneksi Jarak Jauh

Pada langkah-langkah di atas, kami telah mengaktifkan SSL untuk server MySQL, dan koneksi lokal terpaksa menggunakan SSL. Pada langkah ini, kami akan mengaktifkan koneksi jarak jauh untuk MySQL, tetapi kami hanya mengizinkan klien yang memiliki file sertifikat yang ditandatangani oleh CA kami untuk terhubung ke server MySQL

Edit file konfigurasi MySQL dengan vim

systemctl start mysqld
systemctl enable mysqld
0

Rekatkan konfigurasi ini di bawah di akhir bagian '[mysqld]'

netstat -plntu
0

Simpan file dan keluar dari editor, restart MySQL

yum -y install mysql-community-server
_7

Selanjutnya, buat pengguna baru untuk koneksi jarak jauh. Saya akan membuat pengguna baru bernama 'hakase' dengan kata sandi '[email protected]' dan memberikan semua hak istimewa kepada pengguna 'hakase'. pengguna 'hakase' hanya akan dapat terhubung dengan kunci Sertifikat

netstat -plntu
2

Create New user for Remote Connection MySQL

Pengguna baru untuk koneksi jarak jauh telah dibuat

Catatan

Anda mungkin melihat '1 peringatan' di hasil kueri mysql. Itu hanya peringatan tentang penggunaan kueri ALTER USER alih-alih GRANT karena kueri 'GRANT' akan ditinggalkan dalam rilis berikutnya

Langkah 6 - Pengujian

Di bagian akhir tutorial ini, kita akan menguji apakah pengguna baru bernama 'hakase' dapat terhubung ke server MySQL dari jarak jauh dengan file sertifikat. Tiga sertifikat untuk klien harus diunduh

  1. Sertifikat CA - ca. pem
  2. Sertifikat klien - sertifikat klien. pem
  3. Kunci klien - kunci klien. pem

Saya telah masuk ke sistem Linux lain dan menginstal paket klien-mysql di sana. Kemudian saya mengunduh semua file sertifikat klien dengan SCP. Sekarang saya akan terhubung ke server MySQL dengan file sertifikat

netstat -plntu
_3

10. 0. 15. 11 = alamat IP Server MySQL

Connect remotely to the MySQL Server CentOS 7

Anda dapat melihat status koneksi dengan kueri ini di bawah

netstat -plntu
_4

Remote Connection with SSL on MySQL

Hakase pengguna dengan alamat IP 10. 0. 15. 10 Terhubung ke server MySQL dengan alamat IP 10. 0. 15. 11, koneksi melalui TCP/IP pada port 3306 dan menggunakan SSL

Saat Anda mencoba terhubung tanpa file Sertifikat, Anda akan melihat kesalahan seperti di bawah ini

Access denied remote connection without Client Certificate

Selanjutnya, saya akan menguji dengan GUI MySQLWorkbench dari host saya

Di bawah ini adalah konfigurasi saya - Pengaturan Parameter

Configure Connection MySQLWorkbench

Konfigurasi SSL - Mengatur SSL

SSL Configuration for MySQLWOrkbench

Dan di bawah hasil koneksi dengan file SSL Client Certificate

MySQLWorkbench Connected with SSL

Pengguna baru berhasil terhubung dari jarak jauh ke server database MySQL dengan koneksi SSL. Saat pengguna mencoba terhubung tanpa file Sertifikat, hasilnya akan 'ditolak'. Instalasi dan Konfigurasi MySQL dengan koneksi SSL telah berhasil

Bagaimana cara terhubung ke database MySQL di CentOS 7?

Instal MySQL CentOS .
Siapkan repositori Yum. Jalankan perintah berikut untuk mengaktifkan repositori MySQL yum di CentOS. .
Instal Server Komunitas MySQL 8. .
Mulai Layanan MySQL. .
Tampilkan kata sandi default untuk pengguna root. .
Instalasi Aman MySQL. .
Mulai ulang dan aktifkan layanan MySQL. .
Hubungkan ke MySQL

Bagaimana cara terhubung ke database MySQL di CentOS?

Panduan Install MySQL di CentOS 7. Langkah 1. Unduh Paket Repositori. Langkah 2. Tambahkan Repositori Perangkat Lunak. Langkah 3. Instal MySQL
Menggunakan MySQL. Mengelola Layanan MySQL. Temukan Kata Sandi Sementara. Konfigurasi dan Pengamanan. Masuk ke MySQL

Bagaimana cara memeriksa MySQL di CentOS 7?

Setelah Anda menyiapkan MySQL di CentOS 7, itu tidak secara otomatis dimulai tepat setelah instalasi. .
Anda tidak akan mendapat respons setelah MySQL dimulai, jadi untuk memeriksa apakah sudah berfungsi dengan baik, gunakan perintah di bawah ini. sudo systemctl status mysqld

Bagaimana cara terhubung ke database MySQL dari Linux?

AKSES DATABASE MYSQL .
Masuk ke server web Linux Anda melalui Secure Shell
Buka program klien MySQL di server di direktori /usr/bin
Ketik sintaks berikut untuk mengakses database Anda. $ mysql -h {hostname} -u nama pengguna -p {databasename} Kata sandi. {kata sandi Anda}