Ana içeriğe geç

MySQL

Bu sayfa, MySQL'e bir veri ambarı olarak bağlanmayı kapsar. MySQL'i Patrona'nın uygulama veritabanı olarak kullanmak için Patrona uygulama veritabanını yapılandırma bölümüne bakın.

Bir veritabanı bağlantısı eklemek için sağ üst köşedeki dişli simgesine tıklayın ve Yönetici ayarları > Veritabanları > Veritabanı ekle yolunu izleyin.

Desteklenen sürümler

Patrona, en eski desteklenen sürümden en son kararlı sürüme kadar olanları destekler. MySQL kullanım ömrü tarihleri bölümüne bakın.

Ayarlar

Bu ayarları istediğiniz zaman düzenleyebilirsiniz. Değişikliklerinizi kaydetmeyi unutmayın.

Görünen ad

Patrona arayüzünde veritabanı için görüntülenecek ad.

Sunucu

Veritabanınızın IP adresi veya alan adı (örneğin, esc.veritabanim.com).

Port

Veritabanı portu. Örneğin, 3306.

Kullanıcı adı

Veritabanınıza bağlanmak için kullanmak istediğiniz hesabın veritabanı kullanıcı adı. Aynı veritabanına bağlanmak için farklı kullanıcı hesapları kullanarak aynı veritabanına birden çok bağlantı kurabilirsiniz. Her birinin farklı ayrıcalıkları olabilir.

Şifre

Veritabanına bağlanmak için kullandığınız kullanıcı adının şifresi.

Güvenli bir bağlantı kullan (SSL)

Sunucunuzun SSL sertifika zincirini yapıştırabilirsiniz.

Bir SSH tüneli kullan

SSH tüneli kılavuzumuza bakın.

JSON Sütunlarını Aç

MySQL veritabanları için Patrona, JSON sütunlarını bileşen alanlarına açarak her JSON anahtarının bir sütun haline geldiği bir tablo oluşturabilir. JSON açma özelliği varsayılan olarak açıktır, ancak performans yavaşsa JSON açma özelliğini kapatabilirsiniz.

JSON açma özelliğini açarsanız, tablo meta verilerinde tek tek sütunlar için de açmayı değiştirebilirsiniz.

Ek JDBC bağlantı dizesi seçenekleri

Patrona'nın veritabanınıza bağlanmak için kullandığı bağlantı dizesine seçenekler ekleyebilirsiniz.

Basit keşifler için sorguları yeniden çalıştır

Herhangi bir Özetle veya filtre seçimi uygulamadan önce kişilerin Çalıştır (oynat butonu) seçeneğini tıklamasını istiyorsanız bu seçeneği KAPALI konuma getirin.

Varsayılan olarak Patrona, Özetle menüsünden bir gruplama seçeneği veya detaylandırma menüsünden bir filtre koşulu seçtiğiniz anda bir sorgu çalıştırır. Veritabanınız yavaşsa, her tıklamada veri yüklemeyi önlemek için yeniden çalıştırmayı devre dışı bırakmak isteyebilirsiniz.

Patrona'nın ne zaman senkronize edeceğini ve tarayacağını seçin

Veritabanınızla güncel kalmak için Patrona'nın kullandığı sorguları yönetmek için bu seçeneği AÇIK konuma getirin. Daha fazla bilgi için Veritabanlarını senkronize etme ve tarama bölümüne bakın.

Veritabanı senkronizasyonu

Senkronizasyonların ve taramaların ne zaman gerçekleşeceğini seçin > AÇIK seçeneğini seçtiyseniz, şunları ayarlayabileceksiniz:

  • Senkronizasyonun sıklığı: saatlik (varsayılan) veya günlük.
  • Senkronizasyonun çalıştırılacağı saat, Patrona uygulamanızın çalıştığı sunucunun saat diliminde.

Filtre değerleri için tarama

Patrona, kontrol kutusu filtrelerini panolarda ve sorularda etkinleştirmek için bu veritabanındaki her alanda bulunan değerleri tarayabilir. Bu, özellikle çok büyük bir veritabanınız varsa, kaynak yoğun bir işlem olabilir.

Senkronizasyonların ve taramaların ne zaman gerçekleşeceğini seçin > AÇIK seçeneğini seçtiyseniz, Filtre değerleri için tarama altında aşağıdaki seçenekleri göreceksiniz:

  • Düzenli olarak, bir zamanlamaya göre, veritabanınızdaki değişiklik oranına uyan bir sıklıkta tarama sorguları çalıştırmanıza olanak tanır. Saat, Patrona uygulamanızın çalıştığı sunucunun saat diliminde ayarlanır. Bu, küçük bir veritabanı veya sık sık güncellenen farklı değerlere sahip tablolar için en iyi seçenektir.
  • Yalnızca yeni bir filtre widget'ı eklerken, tarama sorgularının isteğe bağlı olarak çalışmasını istiyorsanız harika bir seçenektir. Bu seçeneği AÇIK konuma getirmek, Patrona'nın yalnızca bir panoya veya SQL sorusuna yeni bir filtre eklendiğinde kullanılan alan(lar)ın değerlerini tarayacağı ve önbelleğe alacağı anlamına gelir.
  • Asla, gerekirse bunu manuel olarak yapacağım, ya çok büyük olan ya da asla gerçekten yeni değerler eklenmeyen veritabanları için bir seçenektir. Manuel bir tarama çalıştırmak ve filtre değerlerinizi güncel hale getirmek için Alan değerlerini şimdi yeniden tara butonunu kullanın.

Tabloları periyodik olarak yeniden parmak iziyle işaretle

Periyodik yeniden parmak iziyle işaretleme, veritabanınızdaki yükü artıracaktır.

Patrona her senkronizasyon çalıştırdığında bir değer örneğini taramak için bu seçeneği AÇIK konuma getirin.

Bir parmak izi sorgusu, her sütundan ilk 10.000 satırı inceler ve bu verileri kullanarak her sütunun kaç benzersiz değere sahip olduğunu, sayısal ve zaman damgası sütunları için minimum ve maksimum değerlerin ne olduğunu tahmin eder. Bu seçeneği KAPALI bırakırsanız, Patrona sütunlarınızı yalnızca kurulum sırasında bir kez parmak iziyle işaretler.

MySQL 8+ sunucularına bağlanma

Patrona, MySQL sunucularına bağlanmak için MariaDB bağlayıcısını kullanır. MariaDB bağlayıcısı, MySQL 8'in varsayılan kimlik doğrulama eklentisi için destekten yoksundur. Bağlanmak için Patrona kullanıcısı tarafından kullanılan eklentiyi değiştirmeniz gerekir:

mysql_native_password`: `ALTER USER 'patrona'@'%' IDENTIFIED WITH mysql_native_password BY 'thepassword';

Doğru kimlik bilgileriyle giriş yapılamıyor

Bunu nasıl tespit edersiniz: Patrona, MySQL sunucunuza "Kullanıcı adı veya şifre yanlış görünüyor" hata mesajıyla bağlanamaz, ancak kullanıcı adı ve şifrenin doğru olduğundan eminsinizdir. MySQL kullanıcısını, bağlandığınız ana bilgisayardan farklı bir ana bilgisayarla oluşturmuş olabilirsiniz.

Örneğin, MySQL sunucusu bir Docker konteynerinde çalışıyorsa ve patrona kullanıcınız CREATE USER 'patrona'@'localhost' IDENTIFIED BY 'thepassword'; ile oluşturulmuşsa, localhost Docker konteynerine çözümlenecek ve ana makineye değil, erişimin reddedilmesine neden olacaktır.

Bu sorunu, Patrona sunucu günlüklerinde şu hata mesajını arayarak tespit edebilirsiniz:

Access denied for user 'patrona'@'172.17.0.1' (using password: YES).

Ana bilgisayar adını 172.17.0.1 (bu durumda bir Docker ağ IP adresi) ve sonundaki using password: YES ifadesini not edin.

Aynı hata mesajını, komut satırı istemcisiyle MySQL sunucusuna bağlanmaya çalışırken de göreceksiniz: mysql -h 127.0.0.1 -u patrona -p.

Bunu nasıl düzeltebilirsiniz: MySQL kullanıcısını doğru ana bilgisayar adıyla yeniden oluşturun:

CREATE USER 'patrona'@'172.17.0.1' IDENTIFIED BY 'thepassword';

Aksi takdirde, gerekirse, ana bilgisayar adı için bir joker karakter kullanılabilir:

CREATE USER 'patrona'@'%' IDENTIFIED BY 'thepassword';

Bu kullanıcının izinlerinin ayarlanması gerekecektir:

GRANT SELECT ON targetdb.* TO 'patrona'@'172.17.0.1';
FLUSH PRIVILEGES;

Eski kullanıcıyı silmeyi unutmayın:

DROP USER 'patrona'@'localhost';

Kullanıcı, ana bilgisayar ve şifre doğru olmasına rağmen veritabanına bağlanamıyorsanız, ek JDBC seçeneklerine trustServerCertificate=true eklemeyi deneyin. Bu seçenek, Patrona sürücüsüne kök sertifikası yüklü olmasa bile sunucu sertifikasına güvenmesini söyleyecek ve güvenli bir bağlantı kurmalıdır.

JSON içeren kayıtları senkronize etme

Patrona, bir tablonun ilk beş yüz satırındaki anahtarlara dayanarak JSON "şemasını" çıkarır. MySQL JSON alanlarının şeması yoktur, bu nedenle Patrona, bir JSON alanının hangi anahtarlara sahip olduğunu tanımlamak için tablo meta verilerine güvenemez. Şema eksikliğini gidermek için Patrona, ilk beş yüz kaydı alacak ve bu kayıtlardaki JSON'u ayrıştırarak JSON'un "şemasını" çıkaracaktır. Patrona'nın kendisini beş yüz kayıtla sınırlamasının nedeni, meta verileri senkronize etmenin veritabanınıza gereksiz yere yük bindirmemesidir.

Sorun şu ki, JSON'daki anahtarlar kayıttan kayda değişiyorsa, ilk beş yüz satır, bu JSON alanındaki JSON nesneleri tarafından kullanılan tüm anahtarları yakalamayabilir. Patrona'nın tüm JSON anahtarlarını çıkarmasını sağlamak için, ilk beş yüz satırdaki JSON nesnelerine ek anahtarlar eklemeniz gerekecektir.

MySQL 8+ Docker konteyneri oluşturma

Yeni bir MySQL konteyneri oluşturuyorsanız ve:

  • Patrona'nın kullanıcıyı manuel olarak oluşturmadan veya kimlik doğrulama mekanizmasını değiştirmeden konteynere bağlanmasını istiyorsanız,
  • veya RSA public key is not available client side (option serverRsaPublicKeyFile not set) hatasıyla karşılaşıyorsanız,

Konteyneri çalıştırdığınızda ['--default-authentication-plugin=mysql_native_password'] değiştiricilerini kullanın, şöyle:

  • basit bir docker çalıştırma: docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx mysql:8.xx.xx --default-authentication-plugin=mysql_native_password

  • veya docker-compose'da:

mysql:
image: mysql:8.xx.xx
container_name: mysql
hostname: mysql
ports:
- 3306:3306
environment:
- "MYSQL_ROOT_PASSWORD=xxxxxx"
- "MYSQL_USER=patrona"
- "MYSQL_PASSWORD=xxxxxx"
- "MYSQL_DATABASE=patrona"
volumes:
- $PWD/mysql:/var/lib/mysql
command: ["--default-authentication-plugin=mysql_native_password"]

Vitess tabanlı veritabanlarıyla ilgili sınırlamalar

Vitess veritabanlarını sorgularken, her alt sorgunun içine bir LIMIT maddesi eklemelisiniz.

Nedeni: Genellikle, Patrona, nihai sorgu sonuçlarına (örneğin, 2000 veya 10000 satır) sınırlar uygular. Ancak, Vitess'teki bilinen bir hata nedeniyle, Vitess bu sınırları alt sorgulara uygulayabilir, bu da beklenmedik sonuçlara yol açabilir. Geçici çözüm, alt sorgularınızın her birine sınırlar eklemektir.

Platformu barındıran satıcıyla iletişime geçmek isteyebilirsiniz, çünkü Vitess, bilgi şemasından meta verileri döndürme konusunda sorun yaşayabilir. Patrona'nın uygulama veritabanını doldurmak için bu meta verilere ihtiyacı vardır; Patrona bu meta verileri alamazsa, alanlar görünmeyebilir (veya boş görünebilir).

Daha fazla okuma