MysSQLMariaDB用trigger调用shell

Jun 07, 2016 pm 04:45 PM
mariadb

MysSQLMariaDB用trigger调用shell

Windows环境下:

DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;

CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.dll';

select sys_eval('ipconfig');

Linux环境下:

在mysql的触发器中执行一个外部程序。

步骤如下:

一、解压附件的压缩包之后

如果不想自己编译的话,,把lib_mysqludf_sys.so文件放到 mysql的lib/mysql/plugin/

目录下。

二、执行chcon -t texrel_shlib_t mysql/lib/mysql/plugin/lib_mysqludf_sys.so

三、创建函数

DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;

CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
四、测试

1、准备sh文件
在linux系统中执行下面的命令
su mysql
mkdir /mysqlUDFtest

cd mysqlUDFtest
vi test.sh

#/bin/sh
date > testlog.txt

chmod +x ./test.sh
2、准备数据库表和触发器
选择一个数据库执行如下命令:

CREATE TABLE test1(a1 INT) engine=InnoDB;
CREATE TABLE test2(a2 INT) engine=InnoDB;

DELIMITER |

DROP TRIGGER /*!50032 IF EXISTS */ `test`.`testref`|

create trigger `test`.`testref` BEFORE INSERT on `test`.`test1`
for each row BEGIN
DECLARE done INT DEFAULT 999;
set done = sys_exec("/mysqlUDFtest/test.sh");
INSERT INTO test2(a2)values(2);
END;
|

DELIMITER ;

3、向test1表中插入一条数据后,请在Linux命令行:用root用户,执行以下命令:find / -name testlog.txt

查找testlog.txt文件。

在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)

MariaDB Proxy读写分离的实现

Linux下编译安装配置MariaDB数据库的方法

CentOS系统使用yum安装MariaDB数据库

安装MariaDB与MySQL并存

MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里

本文永久更新链接地址:

linux

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP を使用して MariaDB データベースに接続する PHP を使用して MariaDB データベースに接続する May 17, 2023 am 08:24 AM

MariaDB は、MySQL のブランチであるオープンソースのリレーショナル データベース管理システムです。 PHP は、オープンソースのサーバー側スクリプト言語として、Web 開発で広く使用されています。多くの Web 開発プロジェクトでは、Web アプリケーションにデータを保存および取得するために、PHP を使用して MariaDB データベースに接続する必要があります。この記事では、PHP を使用して MariaDB データベースに接続するコードを記述する方法を紹介します。 1. MariaDB サーバーをインストールし、PHP を使用して Maria に接続します。

PDO を使用して MariaDB データベースに接続する方法 PDO を使用して MariaDB データベースに接続する方法 Jul 28, 2023 pm 02:49 PM

PDO を使用して MariaDB データベースに接続する方法 1. はじめに PDO (PHPDataObjects) は、データベースにアクセスするために PHP で使用される軽量の抽象化レイヤーです。これは開発者に、MariaDB、MySQL、SQLite などのさまざまな種類のデータベースに接続して操作するための統合されたインターフェイスのセットを提供します。この記事では、PDO を使用して MariaDB データベースに接続する方法とサンプル コードを紹介します。 2. PDO を使用してインストールおよび構成し、MariaDB に接続します

MariaDBとMySQLの違いを詳しく解説した記事 MariaDBとMySQLの違いを詳しく解説した記事 Mar 09, 2023 am 11:39 AM

この記事では、MariaDB と MySQL に関する関連知識を紹介します。主に MariaDB と MySQL の違いについて説明します。興味のある友達は一緒に見てください。皆さんのお役に立てれば幸いです。

Docker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化 Docker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化 Oct 12, 2023 pm 02:19 PM

DockerCompose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化 はじめに: 最新のアプリケーション開発では、コンテナ化はアプリケーションの管理とデプロイを改善するための一般的な方法となっています。 DockerCompose は、複数のコンテナを定義して実行するためのツールであり、アプリケーションのデプロイと管理のプロセスを簡素化します。この記事では、DockerCompose を使用して Nginx と

Debian 12 に MariaDB データベースをインストールする方法 Debian 12 に MariaDB データベースをインストールする方法 Feb 20, 2024 pm 02:24 PM

MariaDB は、オープンソースのマルチスレッド リレーショナル データベース管理システムであり、MySQL に代わるものです。 MariaDB は、Debian における MySQL のデフォルトの代替品です。このチュートリアルでは、Debian12 に MariaDB をインストールする方法を説明します。準備条件 1. Debian12 がインストールされた VPS 仮想マシン (Alibaba Cloud VPS または Tencent Cloud VPS 仮想ホストを購入することをお勧めします。外部サーバーを好む場合は、Vultr で VPS を試すことをお勧めします。登録時に 50 ドルのトライアル体験が可能です)、非常に費用対効果が高くなります)、もちろん、自分のコンピューターまたは仮想マシンでも使用できます。 2. VPS を使用する場合は、セキュリティ上の理由から、非 root アカウントを使用することをお勧めします。これは Debian12 で実行できます。

Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのネットワーク パフォーマンスを最適化する Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションのネットワーク パフォーマンスを最適化する Oct 12, 2023 pm 12:49 PM

DockerCompose、Nginx、MariaDB を使用した PHP アプリケーションのネットワーク パフォーマンスの最適化の概要: 今日のインターネット時代では、ネットワーク パフォーマンスは Web アプリケーションの安定性と応答性にとって非常に重要です。 PHP アプリケーションのネットワーク パフォーマンスを向上させるために、コンテナ化テクノロジ DockerCompose、効率的な Web サーバー Nginx、安定したデータベース MariaDB を使用できます。この記事では、これらのツールを使用して PHP アプリケーションのネットワークを最適化する方法を詳しく紹介します。

Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス Docker Compose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス Oct 12, 2023 am 11:24 AM

DockerCompose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス はじめに: 最新の Web アプリケーション開発では、コンテナ化テクノロジの使用がトレンドになっています。コンテナ化テクノロジでは、アプリケーションとその依存関係を 1 つのコンテナにパッケージ化できるため、コンテナ化テクノロジをサポートするあらゆる環境でアプリケーションを実行できます。 Docker は現在最も人気のあるコンテナ化テクノロジーであり、アプリケーションの展開、管理、拡張を簡素化できます。使用する場合

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化 Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化 Oct 12, 2023 pm 12:55 PM

DockerCompose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化 PHP アプリケーションを開発およびデプロイするときに、パフォーマンスの問題が頻繁に発生します。これらの問題を解決するには、DockerCompose、Nginx、MariaDB を活用してアプリケーションのパフォーマンスを最適化します。 DockerCompose は、複数の Docker コンテナを定義および管理するためのツールです。複数のコンテナを簡単に作成して実行するのに役立ちます

See all articles