是否有可能从MySQL触发器调用网址?是否可以在mysql触发器中调用网址(http://)?
例如:我为插入创建了一个触发器。那时候,我想调用一个网址,如http://www.example.com/。
是否有可能从MySQL触发器调用网址?是否可以在mysql触发器中调用网址(http://)?
例如:我为插入创建了一个触发器。那时候,我想调用一个网址,如http://www.example.com/。
不能直接 - 你必须创建一个user-defined function和它挂在
P.S:这听起来像使用数据库的可怕方式。
我希望这篇文章能够对您有用
来源:http://vorachet.blogspot.com/2013/03/how-to-install-mysql-udf-on-centos.html
How to install MySQL UDF on CENTOS
How to install MySQL UDF on CENTOS
Step1. Download the MYSQL UDF at https://github.com/mysqludf/lib_mysqludf_sys
Step2. Run make script
The default make file written by the project owner at step1 does not works for CentOS 64bit
We need a bit customization as follow.
gcc -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o /usr/lib/lib_mysqludf_sys.so -fPIC
Precondition: Make sure you have MySQL header files. You can prepare the header files using this command.
yum install mysql-devel.x86_64
Step3. Configure plugin dir in /etc/my.cnf
...
[mysqld]
plugin_dir=/var/lib/mysql/plugin
...
NOTES: Do not forget to change directory owner to mysql
chown mysql: mysql -R /var/lib/mysql/plugin
Step4. Copy library to plugin dir
cp /usr/lib/lib_mysqludf_sys.so /var/lib/mysql/plugin
Step5. Restart MYSQL and Execute this SQL statements
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'
TESTING: SELECT sys_exec ('touch /var/lib/mysql/test.txt ')
You should see /var/lib/mysql/test.txt after above statement is executed.
请不要只发布一个链接,如果链接的网站将来会发生什么变化?请在答案中包含相关的重要信息。 – 2014-03-10 01:59:13
但愿不是!这种事情应该在应用程序层面上完成。 – 2011-02-03 07:28:58