MySql4 und 5

Gesperrt
fk59
Beiträge: 11
Registriert: Di 12. Aug 2008, 17:27
Kontaktdaten:

MySql4 und 5

Beitrag von fk59 » Do 16. Mai 2013, 14:23

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

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: MySql4 und 5

Beitrag von xmurrix » Do 16. Mai 2013, 15:03

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

fk59
Beiträge: 11
Registriert: Di 12. Aug 2008, 17:27
Kontaktdaten:

Re: MySql4 und 5

Beitrag von fk59 » Do 16. Mai 2013, 15:12

Danke für die Info.

Geht denn ein direktes Update von 4.6.23 auf die 4.8?

Sry, bin Contenido-Noob.

thx, Frank

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: MySql4 und 5

Beitrag von xmurrix » Do 16. Mai 2013, 15:28

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

fk59
Beiträge: 11
Registriert: Di 12. Aug 2008, 17:27
Kontaktdaten:

Re: MySql4 und 5

Beitrag von fk59 » So 19. Mai 2013, 13:15

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

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: MySql4 und 5

Beitrag von xmurrix » So 19. Mai 2013, 14:16

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

fk59
Beiträge: 11
Registriert: Di 12. Aug 2008, 17:27
Kontaktdaten:

Re: MySql4 und 5

Beitrag von fk59 » Mi 22. Mai 2013, 15:51

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 :)

Gesperrt