Alter Table Add Column Lambat?

Padahal jumlah data baru itungan ratusan ribu, tapi mau alter table rasanya lama banget, seperti nge-freeze gitu… Setelah browsing di stackoverflow, salah satu solusinya adalah dengan membuat tabel baru kosong (clone), kemudian tambahkan kolom yang baru, isi dengan data dari tabel lama, dan rename kembali…

Jika diungkapkan dengan syntax mysql, jadinya kurang lebih seperti ini:

create table domain_new like domain;
alter table domain_new add column reset_counter int(11) after domain_status;
insert into domain_new (id, domain_link, bot_ip, domain_status, created, modified) select * from domain;
rename table domain to domain_old;
rename table domain_new to domain;
describe domain;

Kurang lebih prosesnya seperti itu… Selamat mencoba…

 

Advertisements

Cara Install MySQL di Kali Linux 2017.2 (Rolling)

Entah kenapa kok ketika di ketik

sudo apt install mysql-

Kemudian tekan tab, gak muncul mysql-server. Mentang-mentang distro pentest kemudian gak butuh mysql gitu apa? Hehehehe… just kidding…. Mungkin karena versi light yang saya install, sehingga repo ke mysql tidak disertakan. Tapi jangan khawatir, masih bisa diatasi kok. Begini caranya:

Download tools dari laman URL berikut:

https://dev.mysql.com/downloads/repo/apt/

install menggunakan

sudo dpkg -i <paket_name>

kemudian update

sudo apt update

Setelah itu

sudo apt install mysql-server

Beres….

 

 

MySQL di Python3

1200px-MySQL.svg

Jarang banget saya menggunakan engine database yang satu ini, seringnya menggunakan engine NoSQL seperti mongo. Namun, kali ini beda, karena project ini tuntutan klien, dan klien familiar dengan MySQL ya sudah…

Di sini saya menggunakan Python3, library yang saya butuhkan:

  • mysqlclient
  • sqlalchemy
  • sqlalchemy_utils

Saya menggunakan ORM (sqlalchemy) untuk mempermudah kerja, daripada harus menulis raw query syntax, so painful…

Berikut ini contoh kode membuat database dan tabel:

from sqlalchemy import create_engine, MetaData
from sqlalchemy_utils import database_exists, create_database
from sqlalchemy import Column, DateTime, String, Integer, func
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

# create db if not exist
engine = create_engine("mysql://root:@localhost/subdhunter")
if not database_exists(engine.url):
    create_database(engine.url)

# create db model
class Domain(Base):
    __tablename__ = 'domain'
    id= Column(Integer, primary_key=True)
    domain_name = Column(String(100))
    domain_title = Column(String(250))
    domain_status = Column(Integer)
    real_domain_name = Column(String(100))
    created = Column(DateTime, default=func.now())

# create table
from sqlalchemy.orm import sessionmaker
session = sessionmaker()
session.configure(bind=engine)
Base.metadata.create_all(engine)

sdasd

Setup mysql di MacOS

Dengan menggunakan brew, mari kita install mysql di macos:

brew install mysql

Kemudian, jalankan service dengan:

brew services start mysql

Setelah itu, coba masuk ke mysql cli (by default tanpa password):

mysql -uroot

Jika tidak ada pesan kesalahan, berarti mysql sudah terpasang dengan benar di macos…