Lokalde Bulunan Veritabanının Sunucuda MySQL'e Aktarımı

Kendi bilgisayarınızda herhangi bir uygulama geliştirip bu uygulamaya ait veritabanını phpMyAdmin vb. herhangi bir araç kullanmadan direkt olarak konsoldan sunucuya aktarmak isterseniz işlemler biraz karmaşıklaşabilir. Aslında bu yazı MySQL'den çok scp ve unzip ile alakalı. Lokalde bulunan veritabanını sunucuya aktarmak için ise çok basit komutlar yeterli. Bu yazıda veritabanının kurulumundan, içe aktarıma, tüm aşamalar için komutları altta anlattım. 

Burada, elinizde aktarmak istediğiniz veritabanının tablolarının .zip olarak sıkıştırılmış olarak elinizde bulunduğunu, aynı zamanda da sunucuya herhangi bir kullanıcı adı ile bağlanabildiğiniz varsayıyorum. Öncelikle MySQL kurulumunu gerçekleştirmemiz lazım.

$ ssh [email protected]
$ sudo apt install mysql-server mysql-client unzip

Sizden bir root şifresi isteyecek, bu şifreyi iki kere yazdıktan sonra mysql kurulumu tamamlanacak. Eğer root şifresini unutursanız, bir başka yazımda MySQL root şifresini nasıl sıfırlayabileceğinizi anlattım. Kurulumu tamamladıktan sonra, biraz önceki şifreniz ile sunucuda MySQL clientına giriş yapın.

$ mysql -u root -p

Devamında, sırasıyla veritabanı ve kullanıcıyı oluşturup, kullanıcıya o veritabanı üzerinde tüm izinleri tanımlayın (Noktalı virgülleri unutmayın).

mysql> CREATE DATABASE veritabani_adi;
mysql> CREATE USER 'kullanici_adi'@'localhost' IDENTIFIED BY 'kullanici_sifresi';
mysql> GRANT ALL PRIVILEGES ON veritabani_adi . * TO 'kullanici_adi'@'localhost';

An itibariyle kullanıcıyı ekleyip, veritabanına yazabilme yetkisi verdiniz. Sonrasında, kendi bilgisayarınızdan scp ile veritabanı yedeğini, sunucuya aktarmanız lazım. ~/veritabani.sql.zip aktarmak istediğiniz dosyanın direkt konumu iken, /home/user/ sunucuda aktaracağımız kısım.

$ scp ~/veritabani.sql.zip [email protected]:/home/user

Sonrasında sunucuya tekrar bağlanıp,

$ cd /home/user # ki bu path'i değistirmediyseniz muhtemelen ilk geldiğiniz yer burası olacak
$ unzip -p veritabani.sql.zip | mysql -u root -p veritabani_adi

Sizden root şifresini isteyecek, bu şifreyi de yazdıktan sonra lokalde bulunan veritabanınız, veya yedek veritabanınız sunucuya aktarılmış oldu.