Hi,<br><br>It's a bit too late to apply and test this patch for the final 3.0 release, but I've opened a ticket [1] to include it in the next release.<br>Thank you Max Hennig and Fabian for your feedback.<br><br>Regards.<br>

<br>[1] <a href="http://dev.opennebula.org/issues/848">http://dev.opennebula.org/issues/848</a><br clear="all"><span style="border-collapse:collapse;color:rgb(136, 136, 136);font-family:arial, sans-serif;font-size:13px">--<br>

Carlos Martín, MSc<br>Project Major Contributor<br><span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">OpenNebula</span> - The Open Source Toolkit for Cloud Computing<br>

<a href="http://www.opennebula.org/" style="color:rgb(42, 93, 176)" target="_blank">www.<span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">OpenNebula</span>.org</a> | <a href="mailto:cmartin@opennebula.org" style="color:rgb(42, 93, 176)" target="_blank">cmartin@<span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">opennebula</span>.org</a></span><br>


<br><br><div class="gmail_quote">On Wed, Sep 28, 2011 at 6:46 PM, Fabian Wenk <span dir="ltr"><<a href="mailto:fabian@wenks.ch">fabian@wenks.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hello<br>
<br>
According to the posting "Re: [one-users] Opennebula 2.2.1 Failed to create database tables" [1] from Max Hennig, I prepared the attached patches (for 2.2.x and 2.9.90), which solve to problem with the first start of oned when the database will be initialized.<br>


<br>
  [1] <a href="http://lists.opennebula.org/pipermail/users-opennebula.org/2011-August/006260.html" target="_blank">http://lists.opennebula.org/<u></u>pipermail/users-opennebula.<u></u>org/2011-August/006260.html</a><br>
<br>
As far as I had the problem with the first start of oned, it could not create the tables, when in my.cnf the setting "default_storage_engine = InnoDB" is present. After removing it (and restarting MySQL), it was working, as MySQL then is using the default MyISAM storage engine. But there are reasons for using the InnoDB storage engine as default in MySQL. So it would be helpful to OpenNebula if this is also working.<br>


<br>
The attached patches only change all the "VARCHAR(256)" to "VARCHAR(255)". I did test the patch with OpenNebula 2.2.1 (MySQL with InnoDB) and it is working fine so far. But I guess this should also work with 2.9.90. It would probably help if somebody could test this with 2.9.90 and then do this changes in the source repository before the next RC or final build for 3.0.<br>


<br>
I do not know, if it is a good idea or not to have the upgrade script also do this modifications on an already running MySQL database. To do this, the three 'alter table ... VARCHAR(255);' commands from below would be needed (for an existing 2.2.1 database). But reducing the field length could cause some problems if it is filled to the limit. I even do not know, if oned or the one* commands do check the field length before entering data into the database. If yes, then this should also be adjusted there in the source code.<br>


<br>
To convert an already running MySQL opennebula database from MyISAM to InnoDB, I did the following steps (with OpenNebula 2.2.1). It is probably a good idea to stop OpenNebula during this modifications. Then first create a backup with:<br>


mysqldump -u root -p opennebula > opennebula.mysql<br>
<br>
And then convert the tables with the mysql client:<br>
mysql -u root -p<br>
mysql> use opennebula<br>
mysql> alter table host_pool modify host_name VARCHAR(255);<br>
mysql> alter table network_pool modify name VARCHAR(255);<br>
mysql> alter table user_pool modify user_name VARCHAR(255);<br>
mysql> alter table cluster_pool ENGINE=InnoDB;<br>
mysql> alter table history ENGINE=InnoDB;<br>
mysql> alter table host_pool ENGINE=InnoDB;<br>
mysql> alter table host_shares ENGINE=InnoDB;<br>
mysql> alter table image_pool ENGINE=InnoDB;<br>
mysql> alter table leases ENGINE=InnoDB;<br>
mysql> alter table network_pool ENGINE=InnoDB;<br>
mysql> alter table user_pool ENGINE=InnoDB;<br>
mysql> alter table vm_pool ENGINE=InnoDB;<br>
<br>
To check the current properties of a table the following MySQL command can be used:<br>
mysql> show create table <table_name>;<br>
<br>
<br>
bye<br><font color="#888888">
Fabian<br>
</font><br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opennebula.org">Users@lists.opennebula.org</a><br>
<a href="http://lists.opennebula.org/listinfo.cgi/users-opennebula.org" target="_blank">http://lists.opennebula.org/listinfo.cgi/users-opennebula.org</a><br>
<br></blockquote></div><br>