Restoring dumped MySQL data is something painful. _restore_mysql.sh enables you to restore the dumped MySQL data easily.
You can simply restore the dumped MySQL data as following:
_restore_mysql.sh example.sql
Above will create "example" as a database, and restore all the content.
If you have multiple dump files, you can do it as following:
_restore_mysql.sh example1.sql example2.sql
Below is another option:
_restore_mysql.sh *.sql
Below is the whole source code can run on your server. It requires PHP at least.
_restore_mysql.sh
#!/usr/bin/php <?php /* * Restre dumped MySQL Data * * Author: Chun Kang (ck@ckii.com) * Date: 2021-10-22 * **/ $db = [ "host" => "127.0.0.1", "port" => 3306, "user_id" => NULL, // default user ID "password" => NULL // DB Password ]; echo "Please input MySQL user ID (ENTER to use the default value):\n"; $tmp = trim (readline()); if (strlen($tmp)) $db['user_id'] = $tmp; echo "Please input MySQL user password (ENTER to use the default value):\n"; $tmp = trim (readline()); if (strlen($tmp)) $db['password'] = $tmp; echo "\n"; // connect to MySQL Server $pdo = new PDO("mysql:host={$db['host']};port={$db['port']}", $db['user_id'], $db['password']); foreach($argv as $backup_filename) { if (!preg_match("/\.sql$/", $backup_filename)) continue; $pathinfo = pathinfo( $backup_filename); $database_name = $pathinfo['filename']; // drop database $pdo->query("DROP DATABASE {$database_name}"); // drop database $pdo->query("CREATE DATABASE {$database_name} CHARACTER SET utf8mb4 COLLATE utf8mb4_bin"); echo "Processing ... {$database_name}\n"; $cmd = "mysql -u{$db['user_id']} -p{$db['password']} {$database_name} < {$backup_filename}"; shell_exec( $cmd); echo "\n\n"; } echo "All the processing is done.\n\n";