Mysql Tablo Kilitleme – Kilitli Tabloları Görüntüleme

Mysql tablo kilitleme.

Mysql tablo kilitleme.

 

Birden fazla geliştiricinin işlem yaptığı veritabanlarında, geliştiriciler geliştirmekte olduğu tabloyu kilitleyerek diğer geliştiricilerin geçici olarak erişmesini engelleyebilirler.  Bu sayede birbirinin işlemini ezme engellenmiş olur.

Mysql veritabanlarında aşağıdaki komutlar ile tablolarımızı kilitleyip, kilidini açabilir. Hangi tablolar kilitli konumda görüntüleyebiliriz.

Bir Tabloya Okuma Kilidi Koymak için:

lock TABLES tablo_adi read;

Bir Tablonun Okuma Kilidini Açmak için:

unlock TABLES tablo_adi read;

Kilitli Tabloları Görüntülemek için:

show open tables WHERE In_use > 0;

C# Query’den Tek Bir İnteger Döndürmek

Database’imiz bağlandıktan sonra toplam gibi tek bir integer değer döndürmek istediğimizde ExecuteScalar() methodunu kullanıyoruz.


SqlConnection con = new SqlConnection(".........................");
con.Open();

query404 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=404 ";
query500 = "select count(*) from Errors where datetime >='" + dateFormat(date) + "' AND datetime<'" + dateFormat(dateEx) + "' and error=500 ";

SqlCommand cmd404 = new SqlCommand(query404, con);
SqlCommand cmd500 = new SqlCommand(query500, con);

int er404 = (int)cmd404.ExecuteScalar();
int er500= (int)cmd500.ExecuteScalar();

con.Close();

Mysql Hücreleri Birleştirme Fonksiyonu ( group concat )

Bazen tablodan dönen verileri tekbir değişkene atamak isteyebiliriz. Örneğin User tablomuzdan kullanıcıların mail adreslerini toplu olarak çekmek istiyoruz.
Burada group_concat() fonksiyonu yardımımıza yetişiyor.

SELECT mail FROM user;

ali@mail.com
mehmet@mail.com
ahmet@mail.com
murat@mail.com
hasan@mail.com

SELECT GROUP_CONCAT( mail SEPARATOR ‘;’ ) from user

ali@mail.com;mehmet@mail.com;ahmet@mail.com;murat@mail.com;hasan@mail.com

Burada maillerde kullanacağımız için ayracı ‘;’ karakteri seçtik.

C# Mysql Database Bağlantısı

Veritabanı bağlantımızı bir sınıf olarak oluşturabilir, sonrasında bu sınıfı çağırarak bağlantımızı sağlayabiliriz.
Ancak öncelikle projemize MySql.Data.dll dosyasını import etmemiz gerekmektedir.


using MySql.Data.MySqlClient;


    public class DatabaseController
    {

        public MySqlConnection connection;

        public DatabaseController()
        {
            MySqlConnectionStringBuilder connectionString = new MySqlConnectionStringBuilder();
            connectionString.Server = "10.22.22.22";
            connectionString.UserID = "username";
            connectionString.Password = "pass";
            connectionString.Database = "dbname";
            this.connection = new MySqlConnection(connectionString.ToString());

        }
    }

Şimdi de bağlantımız gerçekleştirelim.


        DatabaseController db;
        db = new DatabaseController();
        db.connection.Open();

Mysql Database Güvenli Yedekleme

Öncelikle bilgisayarımızdan bir komut satırı açıyoruz. Sonrasında Program Files’in içinde Mysql klasörünü bulup Bin klasörünün içine giriyoruz. (Bu klasöre girmemiz önemli yoksa komutlarımız çalışmayacaktır.)

Aşağıdaki komutla databaseimizin yedeğini alıyoruz.


mysqldump -u username -p --opt dbname > dump.sql

Bu komutla ise restore yani geri yukleme işlemini yapıyoruz.


mysql -u username -p --database=dbname < dump.sql

Geri yükleme işlemi içinde komut satırından backup dosyasının bulunduğu klasöre girilmesi gerekmektedir.

Not: Mysql ve Mysqldump dosyaları windowsta system32 klasörüne kopyalanarak diğer klasörlerden de komutların çağırılması sağlanabilir.