MySQL コマンドでOSシェルコマンドを実行する

MySQL コマンドでOSシェルコマンドを実行する

MySQLで、コマンドでOSシェルコマンドを実行する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 (Ubuntu)

手順

コマンドでOSシェルコマンドを実行するには、「system」を使用します。

system コマンド

実際に、「ls -la」を実行してみます。

mysql> system ls -la

rwxr-x--- 22 testuser testuser     4096 12月 13 22:15 .
drwxr-xr-x  3 root     root         4096 10月 16 17:22 ..
-rw-------  1 testuser testuser     8186 12月 13 22:15 .bash_history
-rw-r--r--  1 testuser testuser      220 10月 16 17:22 .bash_logout
-rw-r--r--  1 testuser testuser     3771 10月 16 17:22 .bashrc
drwx------ 13 testuser testuser     4096 10月 29 18:05 .cache
drwx------ 14 testuser testuser     4096 12月 13 17:25 .config
drwx------  2 testuser testuser     4096 12月 13 17:17 .gconf
drwx------  3 testuser testuser     4096 12月 13 17:25 .gnupg
drwx------  4 testuser testuser     4096 10月 29 18:05 .local
-rw-------  1 testuser testuser     3195 12月 13 22:15 .mysql_history

実行されていることが確認できます。

例えばdumpした「output.sql」ファイルを確認したい場合は「cat」をmysqlシェルから実行することができます。

mysql> system cat output.sql

-- MySQL dump 10.13  Distrib 8.0.27, for Linux (x86_64)
--
-- Host: localhost    Database: foo
-- ------------------------------------------------------
-- Server version       8.0.27-0ubuntu0.21.10.1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `tbl1`
--