Today when I started the new MySQL 5.1.18-beta server which is built from the sources, gave an interesting error which I never came across in earlier versions of MySQL including 5.1.17 as I used the same configuration options for both the versions. The error is:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
.. 70516 19:48:53 [Warning] Server variable flush_method of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable log_arch_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable log_group_home_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Note] Plugin 'InnoDB' disabled by command line option 070516 19:48:53 [Warning] Server variable data_file_path of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable data_home_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable flush_method of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable log_arch_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Warning] Server variable log_group_home_dir of plugin InnoDB was forced to be read-only: string variable without update_func and PLUGIN_VAR_MEMALLOC flag 070516 19:48:53 [Note] Plugin 'InnoDB' disabled by command line option |
I even compiled with <b><i>--with-plugins=all</i></b>; but after going through the configure options and the output lib directory, noticed that InnoDB is supposed to be linked statically instead of dynamically as that of other plugin engines. Recompiling the source with <b><i>--with-plugin-innobase</i></b> does solve the issue and same goes to MyISAM and MyISAM Merge tables.
As a rule of thumb, all plugins which only supports builds of type ‘static‘ but not the ‘dynamic‘; must be configured with <b><i>--with-plugin-PLUGIN_NAME</i></b>, else plugin will be ignored in the build. One can get the list of plugins and its supported build type by running <b><i>./configure --help</i></b>.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
$./configure --help ... Description of plugins: === Partition Support === Plugin Name: partition Description: MySQL Partitioning Support Supports build: static Configurations: max, max-no-ndb === Daemon Example Plugin === Plugin Name: daemon_example Description: This is an example plugin daemon. Supports build: dynamic === Simple Parser === Plugin Name: ftexample Description: Simple full-text parser plugin Supports build: dynamic === Archive Storage Engine === Plugin Name: archive Description: Archive Storage Engine Supports build: static and dynamic Configurations: max, max-no-ndb === Blackhole Storage Engine === Plugin Name: blackhole Description: Basic Write-only Read-never tables Supports build: static and dynamic Configurations: max, max-no-ndb === CSV Storage Engine === Plugin Name: csv Description: Stores tables in text CSV format Supports build: static Status: mandatory === Example Storage Engine === Plugin Name: example Description: Skeleton for Storage Engines for developers Supports build: dynamic Configurations: max, max-no-ndb === Federated Storage Engine === Plugin Name: federated Description: Connects to tables on remote MySQL servers Supports build: static and dynamic Configurations: max, max-no-ndb === Memory Storage Engine === Plugin Name: heap Description: Volatile memory based tables Supports build: static Status: mandatory === InnoDB Storage Engine === Plugin Name: innobase Description: Transactional Tables using InnoDB Supports build: static Configurations: max, max-no-ndb === MyISAM Storage Engine === Plugin Name: myisam Description: Traditional non-transactional MySQL tables Supports build: static Status: mandatory === MyISAM MERGE Engine === Plugin Name: myisammrg Description: Merge multiple MySQL tables into one Supports build: static Status: mandatory === Cluster Storage Engine === Plugin Name: ndbcluster Description: High Availability Clustered tables Supports build: static Configurations: max |
The dynamic plugins can be loaded at run-time using <b><i>INSTALL PLUGIN</i></b> when the server is running.