主要是配置mySql数据库使mySQL数据库可以调用dos命令,例如cmd ,ipconfig等等,案例:数据库触发器调用系统相关的命令;
首先需要下载lib_mysqludf_sys-master.zip文件,并将其中的相关dll文件放到C:\Program Files\MySQL\MySQL Server 5.6\lib\plugin目录下;
Linux是。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.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_exec('cmd');发现返回值为-1;因为windows下涉及到系统管理员权限问题;
-
-
- 这里就需要cmd下 执行 sc delete mysql (删除mysql服务);并在cmd自行创建自己的mysql服务(mysqld mysql_sever)
-
mysqld --install servicename --defaults-file="file_name"
- ,此时创建的服务拥有管理员权限;
-
- 但是有时会发现创建服务后启动得到的mysql是完全空白的配置(即root 密码为空,且没有相关数据,已存在的数据库无法关联到服务),这是我们配置服务出错,可以重复上行配置,删除再重新创建服务,也可以根据需要对服务进行再配置,在服务中查看mysql服务,会发现可执行文件仅仅为 mysqld所在地址,这是我们需要配置服务的可执行文件地址。步骤如下:
- 1 打开注册表regedit
- 2 进入子项HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/3 找到你想改路径的服务名4 修改键名是"ImagePath"的键值即可 (
- "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" mysql_server