CONTAINERIZED/ Docker ile MySql için Backup Almak
Selamlar,
Bugün sizlerle üzerinde çalıştığım Docker ile Mysql için backup alma konusu hakkındaki bilgilerimi paylaşacağım. Araştırmaya en temel düzeyde başladığım için sizlere de adım adım anlatmaya çalışacağım.
- İlk adım olarak MySQL container’ını başlatmalısınız. Eğer container zaten çalışıyorsa bu adımı atlayabilirsiniz. Aşağıdaki komutla latest MySQL sürümü container’ını başlatabilirsiniz.
docker run — name my-mysql-container -e MYSQL_ROOT_PASSWORD=test123 -d mysql:latest
2. Container çalıştıktan sonra, container’ın ID’sini bulmanız gerekir. Bunun için çalışan konteynırları görme komutu kullanabilirsiniz.
docker ps
(docker ps -a kullanılırsa hem duran hem çalışan tüm konteynırlar listelenir.)
3. Backup alma işlemi için container’ın içine girmemiz gerekiyor. Bunun için aşağıdaki komutu kullanabilirsiniz.
docker exec -it //container_id veya container ismi\\ bash
Bu komut geneliyle xxx isimli konteynır id veya name ile mysql konteynırında bir bash kabuğu başlatır ve kullanıcıya interaktif bir terminal sunar. Bu komut ile kullanıcı konteynırdaki işletim sistemi ile etkileşime girebilir(docker exec) ve gerekli komutları interaktif şekilde çalıştırabiliriz(-it).
4. Şimdi container içinde olduğumuz için MySQL’e bağlanabiliriz. Bunun için aşağıdaki komutu kullanabilirsiniz.
mysql -u root -p
Komut çalıştığı anda Mysql istemcisine bağlanarak veritabanı erişimi sağlar ve sql sorguları çalıştırılabilir. Mysql’ e root olarak bağlanıp, u komutu ile kullanıcı adını belirtir, p ile şifre girmeyi sağlatmış oluruz.
5. Şimdi MySQL’e bağlandığımıza göre, backup alma işlemine geçebiliriz. Aşağıdaki komutu kullanarak MySQL veritabanını yedekleyebilirsiniz.
mysqldump -u root -p mydatabase > mydatabase.sql,
mysqldump, bir SQL veritabanının veya belirli tabloları dışa aktarmak için kullanılır,
mydatabase yedeklenecek mysql veritabanının adını belirtir,
mydatabase.sql yedekleme dosyasının adını ve konumunu belirtir.
> işareti dumpı .sql e yönlendir demektir.
Yani kısaca veritabanını yedekleyip mydatabase.sql dosyasına kaydeder.
6. Artık backup dosyası container içinde bulunuyor. Container dışına çıkıp, backup dosyasını dışarıya aktarabilirsiniz. Aşağıdaki komutu kullanarak backup dosyasını dışarıya kopyalayabilirsiniz.
docker cp <container_id>:/mydatabase.sql /host/path/target
Bu komut Docker konteynırı içinde yer alan /mydatabase.sql dosyasını, Docker hostuna bağlı bir dizine kopyalamak için kullanılır. container_id parametresi, dosyanın nereden kopyalanacağını belirtir. Host/path/target parametresi ise hedef dizin yolunu gösterir.
Not: “/host/path/target” kısmını backup dosyasını nereye kaydetmek istediğinize göre değiştirmelisiniz.
Araştırmalarım ve denediğim kodlar sonucunda temel anlamda backup alma işlemi nasıl olur öğrendik. Sonraki yazılarda yeni bilgilerle görüşmek üzere :)