How do I quickly rename a MySQL database (change schema name)?

前端 未结 30 2797
余生分开走
余生分开走 2020-11-22 14:54

The MySQL manual at MySQL covers this.

Usually I just dump the database and reimport it with a new name. This is not an option for very big databases. Apparently

30条回答
  •  半阙折子戏
    2020-11-22 15:23

    You may use this shell script:

    Reference: How to rename a MySQL database?

    #!/bin/bash
    set -e # terminate execution on command failure
    
    mysqlconn="mysql -u root -proot"
    olddb=$1
    newdb=$2
    $mysqlconn -e "CREATE DATABASE $newdb"
    params=$($mysqlconn -N -e "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES \
                               WHERE table_schema='$olddb'")
    for name in $params; do
          $mysqlconn -e "RENAME TABLE $olddb.$name to $newdb.$name";
    done;
    $mysqlconn -e "DROP DATABASE $olddb"
    

    It's working:

    $ sh rename_database.sh oldname newname
    

提交回复
热议问题