---

 server/base_server/global_variables.pike |   18 ++++++++++++++++++
 server/base_server/roxenloader.pike      |    7 +++----
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/server/base_server/global_variables.pike 
b/server/base_server/global_variables.pike
index 7458c40..9ca7bdb 100644
--- a/server/base_server/global_variables.pike
+++ b/server/base_server/global_variables.pike
@@ -344,6 +344,24 @@ void define_global_variables(  )
                             
Stdio.write_file(combine_path(roxenloader.query_configuration_dir(), 
"_mysql_table_check"), options);
                           });
 
+  defvar("mysqldextraoptions",
+         Variable.Text( "[mysqld]\n"
+                       "#query-cache-size = 0M\n"
+                       "# The following options can save a lot of memory:\n"
+                        "#skip-innodb\n"
+                        "#skip-bdb\n",
+                        VAR_MORE, LOCALE(0, "Extra mysqld options"),
+                        LOCALE(0, "Specify any additional customisations "
+                               "to tune the internal mysql server "
+                               "of Roxen.")))
+    ->set_changed_callback(lambda(Variable.Variable s)
+                          {
+                            Stdio.write_file(combine_path(
+                               roxenloader.query_configuration_dir(),
+                              "_mysql_extraoptions"),
+                             query("mysqldextraoptions"));
+                          });
+
   defvar("port_options", PortOptions());
 
   defvar("RestoreConnLogFull", 0,
diff --git a/server/base_server/roxenloader.pike 
b/server/base_server/roxenloader.pike
index 6c54153..79a596d 100644
--- a/server/base_server/roxenloader.pike
+++ b/server/base_server/roxenloader.pike
@@ -2011,8 +2011,6 @@ void low_start_mysql( string datadir,
                  "--socket="+datadir+"/socket",
                  "--pid-file="+pid_file,
 #endif
-                 "--skip-locking",
-                 "--skip-name-resolve",
                  "--basedir="+basedir,
                  "--datadir="+datadir,
   });
@@ -2045,13 +2043,14 @@ void low_start_mysql( string datadir,
                     "set-variable = max_allowed_packet=16M\n"
                     "set-variable = net_buffer_length=8K\n"
                     "query-cache-type = 2\n"
-                    "query-cache-size = 32M\n"
 #ifndef UNSAFE_MYSQL
                     "local-infile = 0\n"
 #endif
                     "skip-name-resolve\n"
                     "bind-address = "+env->MYSQL_HOST+"\n" +
-                    (uid ? "user = " + uid : "") + "\n");
+                    (uid ? "user = " + uid : "") + "\n"
+                    "!include "+combine_path(query_configuration_dir(),
+                                 "_mysql_extraoptions")+"\n");
 
 #ifdef __NT__
   cfg_file = replace(cfg_file, "\n", "\r\n");


Reply via email to