Seite 1 von 1

MySql4 und 5

Verfasst: Do 16. Mai 2013, 14:23
von fk59
Hallo,

haben V 4.6.23 mit MySql 4 installiert.
Provider stellt nun um auf MySql 5.X.
Gibts da Probleme mit der Seite? Muss ich da etwas beachten/ändern?

Vielen Dank!

Thx, Frank

Re: MySql4 und 5

Verfasst: Do 16. Mai 2013, 15:03
von xmurrix
Hallo fk59,

du kannst den SQL-Mode des MySQL-Servers auf "MYSQL40" umstellen, damit sollte die Datenbank wieder mit CONTENIDO 4.6 arbeiten.

Hier ist ein Beitrag dazu:
http://forum.contenido.org/viewtopic.ph ... 59#p157056

Es gibt verschiedene Möglichkeiten:
http://at-byte.com/technology/how-enabl ... ility-mode

Allerdings würde ich mich nicht darauf verlassen. Auch wenn die DB damit kompatibel zu MySQL 4.0 laufen sollte, würde ich dann eher ein Update von CONTENIDO in betracht ziehen. Vermutlich wird dein Provider auch auf neuere PHP-Versionen umsteigen. Da muss man auch einiges konfigurieren um ältere Applikationen zum Laufen zu bekommen. Und das wird immer schwieriger, da CONTENIDO 4.6 nicht auf MySQL 5.x und PHP 5.x angepasst ist. Besser ist CONTENIDO 4.8 oder 4.9, die auch demnächst erscheint...

Gruß
xmurrix

Re: MySql4 und 5

Verfasst: Do 16. Mai 2013, 15:12
von fk59
Danke für die Info.

Geht denn ein direktes Update von 4.6.23 auf die 4.8?

Sry, bin Contenido-Noob.

thx, Frank

Re: MySql4 und 5

Verfasst: Do 16. Mai 2013, 15:28
von xmurrix
Ja, das sollte gehen.

Ich würde sicherheitshalber ein Update auf die neueste CONTENIDO 4.6 machen, also auf 4.6.24 und dann auf 4.8 oder 4.9. Das kommt aber darauf an, wie alt deine CONTENIDO 4.6 ist. Ist der Versionsunterschied zu 4.6.24 nicht allzu groß, kannst du auch gleich auf 4.8 oder 4.9 aktuaslisieren.

Aber auch beim Update auf CONTENIDO 4.6.24 musst du dafür sorgen, dass das Setup unter MySQL 5.x läuft, du brauchst also die SQL-Mode Anpassung.

Mach aber vorher unbedingt eine Sicherheitskopie der Datenbank und der Sourcen.

Gruß
xmurrix

Re: MySql4 und 5

Verfasst: So 19. Mai 2013, 13:15
von fk59
wie stell ich beim Provider den SQL-Mode um? Ich komme nicht an die my.ini.
Provider bitten? Oder geht das über Phpmyadmin?

thx
Frank

Re: MySql4 und 5

Verfasst: So 19. Mai 2013, 14:16
von xmurrix
Man kann auch wie auf der Seite http://at-byte.com/technology/how-enabl ... ility-mode beschrieben, den SQL-Mode mit einem SQL-Statement setzen.

Code: Alles auswählen

SET GLOBAL sql_mode='MYSQL40'
Das sollte man gleich nach dem Erstellen der Datenbankverbindung machen. In CONTENIDO 4.8 gibt es die Klasse DB_Contenido (conlib/local.php), diese Klasse hat die connect() Funktion, in der die Verbindung aufgebaut wird.

Du kannst die Funktion ändern in:

Code: Alles auswählen

  function connect($Database = "", $Host = "", $User = "", $Password = "") {
      global $db_link;

      $new_connection = false;

      if ((0 == $db_link || !is_resource($db_link)) && !is_object($db_link)) {
          $db_link = parent::connect($Database, $Host, $User, $Password);
          $new_connection = true;
      }

      $this->Link_ID = $db_link;

      if ($new_connection && $this->Link_ID) {
          $this->query("SET GLOBAL sql_mode='MYSQL40'");
      }

      return $this->Link_ID;
  }
Das sorgt dafür, dass der SQL-Mode gesetzt wird, sofern die Berechtigungen das natürlich erlauben.

Soweit mir bekannt ist, verwendet auch das Setup die Klasse DB_Contenido, sollte also auch für das Setup gelten.

In CONTENIDO 4.6.24 gibt es die Funktion connect() nicht, du kannst aber die Funktion aus 4.8.18 übernehmen und in 4.6.24 einbauen.

So sollte das funktionieren, allerdings ohne Gewähr, da es reine Theorie ist!

Gruß
xmurrix

Re: MySql4 und 5

Verfasst: Mi 22. Mai 2013, 15:51
von fk59
Also, hab folgendes gemacht:

Mysql-DB 4 exportiert. Neue Mysql 5 angelegt. Datenbank über Script in die 5-er eingelesen und die config.php angepasst.

Läuft problemlos.

Trotzdem werd ich die Tage mal auf die neuere Version von Contenido updaten.

ciao
Frank :)