2008
MySQLERRORNotableUDFHIGH confidence

No paths allowed for shared library

Production Risk

Low — UDF creation is rejected.

What this means

When creating a User-Defined Function (UDF), the shared library name must not include a path. MySQL only loads UDF libraries from the directory specified by plugin_dir.

Why it happens
  1. 1CREATE FUNCTION specifies a path like /usr/lib/myfunc.so instead of just myfunc.so.
  2. 2Attempt to load a UDF library from an arbitrary filesystem location.
How to reproduce
trigger — this will error
trigger — this will error
CREATE FUNCTION my_func RETURNS STRING SONAME '/usr/lib/myfunc.so';

expected output

ERROR 2008 (HY000): No paths allowed for shared library.

Fix 1

Use only the filename, without a path

Use only the filename, without a path
CREATE FUNCTION my_func RETURNS STRING SONAME 'myfunc.so';

Why this works

MySQL resolves the library name relative to plugin_dir automatically.

Fix 2

Ensure the library file is in plugin_dir

Ensure the library file is in plugin_dir
-- Copy the .so file to the plugin_dir path shown by:
SHOW VARIABLES LIKE 'plugin_dir';

Why this works

The library must reside in plugin_dir for MySQL to load it.

What not to do

Sources
Official documentation ↗

MySQL 8.0 — 2008 ER_UDF_NO_PATHS

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MySQL errors