Cara menggunakan mysql.connector.connect ssl

Menghubungkan Data Studio ke database MySQL.

Konektor MySQL memungkinkan Anda mengakses data dari database MySQL di dalam Data Studio.

Dalam artikel ini:

  • Cara terhubung ke MySQL
  • Catatan
  • Batas
  • Referensi terkait

Cara terhubung ke MySQL

Sumber data Data Studio dapat terhubung ke satu tabel database MySQL.

Konektor MySQL Data Studio didasarkan pada Google Cloud SQL untuk MySQL, dan dikenai batasan yang sama terkait versi dan fitur yang didukung. Pelajari Google Cloud SQL untuk MySQL lebih lanjut.

Versi yang didukung

Kami telah menguji Data Studio di versi MySQL berikut:

  • 5.6
  • 5.7
  • 8.0

Jika Anda mengalami masalah saat menggunakan versi yang didukung, beri tahu kami di Komunitas Bantuan Data Studio. Anda dapat menambahkan dan memberi suara untuk permintaan fitur di sini.

Untuk menghubungkan

  1. Login ke Data Studio.
  2. Di kiri atas, klik
    Cara menggunakan mysql.connector.connect ssl
     lalu pilih Sumber Data.
  3. Pilih konektor MySQL
  4. Siapkan koneksi ke database Anda:

    Hubungkan dengan nama host atau alamat IP,

    1. Di sebelah kiri, pilih BASIC.
    2. Masukkan detail koneksi:
      1. Nama host atau alamat IP
      2. Port (Opsional)
      3. Database
      4. Nama pengguna
      5. Sandi

    Terhubung dengan URL JDBC

    1. Di sebelah kiri, pilih URL JDBC.
    2. Masukkan detail koneksi:
      1. URL JDBC

        Contoh

        jdbc:mysql://<nama host atau alamat IP>[:<port>]/<database>

      2. Nama Pengguna
      3. Sandi

    Jika menggunakan opsi nama host JDBC, Anda dapat memastikan opsi tersebut dapat diakses dengan fitur pencarian DNS publik seperti Whois.

    Catatan: Data Studio tidak dapat terhubung ke localhost. Anda harus menggunakan nama host atau alamat IP publik.

  5. Mengaktifkan SSL (opsional)

    Data Studio mendukung koneksi aman (terenkripsi) ke server menggunakan protokol TLS (Transport Layer Security). TLS juga disebut sebagai SSL (Secure Sockets Layer). Untuk mengaktifkan koneksi aman, centang Aktifkan SSL, lalu berikan file konfigurasi SSL Anda.

  6. Mengaktifkan autentikasi klien (opsional)

    Jika kotak ini dicentang, Anda dapat mengupload kunci pribadi klien dan sertifikat klien jika diperlukan untuk mengakses database.

  7. Klik AUTENTIKASI.
  8. Pilih tabel dari daftar atau masukkan kueri kustom.
    Pilih opsi KUERI KUSTOM untuk memberikan kueri SQL dan bukan menghubungkan ke satu tabel. Data Studio menggunakan SQL kustom ini sebagai pernyataan pemilihan dalam untuk setiap kueri yang dibuat pada database.
  9. Klik HUBUNGKAN.

Sementara itu, halaman daftar kolom sumber data akan muncul. Di kanan atas, klik BUAT LAPORAN atau JELAJAHI untuk mulai memvisualisasikan data Anda.

Catatan

Jenis data

Data Studio memetakan jenis data native database Anda ke kumpulan jenis data yang terpadu. Jika Data Studio menemukan kolom dalam tabel Anda atau kueri dari jenis yang tidak didukung, kolom tersebut tidak akan dibuat menjadi kolom.

Catatan: Data Studio tidak mendukung Ekstensi Data Spasial MySQL.

Akses firewall

Agar Data Studio dapat terhubung ke dan melakukan kueri database yang berada di belakang firewall, Anda perlu membuka akses ke alamat IP tertentu.  

Peringatan: Alamat IP yang saat ini digunakan oleh Data Studio untuk terhubung ke database Anda akan berubah pada awal 2023. Untuk memastikan laporan Anda terus berfungsi dengan benar setelah perubahan, Anda harus membuka alamat IP yang tercantum di bawah.

Menampilkan daftar alamat IP

142.251.74.0/23 
2001:4860:4807::/48
74.125.0.0/16

Batas konektor MySQL

  • Anda dapat mengajukan kueri maksimum 150 ribu baris menggunakan konektor ini.
  • Header kolom (nama kolom) hanya boleh menggunakan karakter ASCII. Karakter non-ASCII tidak didukung.

Membuat sumber data

Apakah ini membantu?

Bagaimana cara meningkatkannya?

Dengan dua kelas di bawah ini, saya sudah mencoba terhubung ke database MySQL. Namun, saya selalu mendapatkan kesalahan ini:

Rab 09 Des 22:46:46 CET 2015 PERINGATAN: Membuat koneksi SSL tanpa verifikasi identitas server tidak disarankan. Menurut MySQL 5.5.45+, persyaratan 5.6.26+ dan 5.7.6+ Koneksi SSL harus ditetapkan secara default jika opsi eksplisit tidak diatur. Untuk kepatuhan dengan aplikasi yang sudah ada yang tidak menggunakan SSL, properti verifikasiServerCertificate diatur ke 'false'. Anda harus menonaktifkan SSL secara eksplisit dengan mengatur useSSL = false, atau mengatur useSSL = true dan memberikan truststore untuk verifikasi sertifikat server.

Ini adalah kelas tes dengan metode main:

public class TestDatabase {

    public static void main(String[] args) {
        Database db = new Database();
        try {
            db.connect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        db.close();
    }
}

Ini adalah kelas Database:

import Java.sql.Connection;
import Java.sql.DriverManager;
import Java.sql.SQLException;

public class Database {

    private Connection con;

    public void connect() throws Exception{

        if(con != null) return;

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new Exception("No database");
        }

        String connectionURL = "jdbc:mysql://localhost:3306/Peoples";

        con = DriverManager.getConnection(connectionURL, "root", "milos23");        
    }

    public void close(){
        if(con != null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

URL koneksi Anda akan terlihat seperti di bawah ini,

jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false

Ini akan menonaktifkan SSL dan juga menekan kesalahan SSL.

Bagaimana dengan menggunakan SSL tetapi mematikan verifikasi server (seperti ketika dalam mode pengembangan di komputer Anda sendiri):

jdbc:mysql://localhost:3306/Peoples?verifyServerCertificate=false&useSSL=true

Metode alternatif adalah:

Properties properties = new Properties();
properties.setProperty("user", "root");
properties.setProperty("password", "milos23);
properties.setProperty("useSSL", "false");
properties.setProperty("autoReconnect", "true");

try (Connection conn = DriverManager.getConnection(connectionUrl, properties)) {
...
} catch (SQLException e) {
...
}

Meskipun, saya tidak berpikir pengaturan koneksi ulang otomatis diperlukan untuk menghapus peringatan.

sebutkanurlseperti:

jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&useSSL=false

tetapi dalam konfigurasi xml ketika Anda menyebutkan tanda & , tanda IDE menunjukkan kesalahan di bawah ini:

The reference to entity "useSSL" must end with the ';' delimiter.

dan kemudian Anda harus secara eksplisit menggunakan&amp;bukannya&untuk ditentukan sebagai&oleh xml setelah itu di xml Anda harus memberikan url dalam konfigurasi xml seperti ini:

<property name="connection.url">jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&amp;useSSL=false</property>

anda perlu menggunakan jalur mysql Anda seperti ini:

<property name="url" value="jdbc:mysql://localhost:3306/world?useSSL=true"/>

Saya menemukan peringatan ini juga kemudian saya memperbaikinya dengan menggunakan SSL = false suffix ke string koneksi seperti contoh kode ini.

Contoh:

connectionString = "jdbc:mysql://{server-name}:3306/%s?useUnicode=yes&characterEncoding=UTF-8&useSSL=false"

Gunakan ini untuk memecahkan masalah di Hive saat membuat koneksi dengan MySQL

<property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true&amp;autoReconnect=true&amp;useSSL=false</value>
   <description>metadata is stored in a MySQL server</description>
</property>

Ini tidak masalah bagi saya:

this.conn = (Connection)DriverManager
    .getConnection(url + dbName + "?useSSL=false", userName, password);

Saya menggunakan properti ini untuk hibernasi di konfigurasi xml

<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/bookshop?serverTimezone=UTC&amp;useSSL=false
</property>

tanpa - serverTimezone = UTC - tidak berfungsi

Solusi Untuk memperbaikinya, tambahkan useSSL = false di akhir string koneksi MySQL:

ex.

properti aplikasi

sumber data mysql

spring.datasource.url=jdbc:mysql://localhost/dbname?useSSL=false
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver