Acho que você está pretendendo o valor de
db_name a ser inserido em vez do %s , como um espaço reservado em C . Isso não funciona como você descobriu. Em vez disso, você poderia fazer algo como:create_statement = "CREATE DATABASE {:s}".format(db_name)
mycursor.execute(create_statement)
Fazendo assim, você poderá usar a técnica em situações mais complexas onde há mais SQL após o valor que você está tentando substituir.