Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 18 reacties
Bron: MySQL, submitter: Bigniels

MySQL AB heeft een nieuwe versie uitgegeven van MySQL, een populaire open source SQL-database, en het versienummer opgekrikt naar 4.1.7. Hierin worden weer een aantal bugs geplet en functionaliteiten verbeterd. Het ontwikkelteam heeft het volgende changelog meegegeven aan deze release:

Functionality added or changed:
  • InnoDB: SHOW TABLE STATUS now shows the creation time of the table for InnoDB. Note that this timestamp might not be the correct time because, e.g., ALTER TABLE changes this timestamp.
  • InnoDB: If innodb_thread_concurrency would be exceeded, let a thread sleep 10 ms before entering the FIFO queue; previously, the value was 50 ms.
  • InnoDB: New mysqld option --innodb-table-locks and session variable innodb_table_locks (on by default). You can now disable InnoDB table locks if your application depends on the way MySQL did table locks before 4.1.2. See section 16.17 Restrictions on InnoDB Tables. (Bug #3299, Bug #5998)
Bugs fixed:
  • Fixed a bug with FOUND_ROWS() used together with LIMIT clause in prepared statements. (Bug#6088)
  • Fixed a bug with NATURAL JOIN in prepared statements. (Bug#6046).
  • Fixed a bug in join of tables from different databases having columns with identical names (prepared statements). (Bug#6050)
  • Now implicit access to system time zone description tables (which happens when you set time_zone variable or use CONVERT_TZ() function) does not require any privileges. (Bug #6116)
  • Fixed a bug which caused the server to crash when the deprecated libmysqlclient function mysql_create_db() was called. (Bug #6081)
  • Fixed REVOKE ALL PRIVILEGES, GRANT OPTION FROM user so that all privileges are revoked correctly. (Bug #5831). This corrects a case that the fix in 4.1.6 could miss.
  • Fixed crash when selecting from a HEAP table with key_column IS NOT NULL. This could also cause a crash if not all index parts where used. (Bug #6082)
  • Fixed a bug that could cause MyISAM index corruption when key values start with character codes below BLANK. This was caused by the new key sort order in 4.1. (Bug #6151)
  • Fixed a bug in the prepared statements protocol when wrong metadata was sent for SELECT statements not returning a result set (such as SELECT ... INTO OUTFILE). (Bug #6059)
  • Fixed bug which allowed one to circumvent missing UPDATE privilege if one had INSERT and SELECT privileges for table with primary key. (Bug #6173)
  • Fixed a bug in libmysqlclient with wrong conversion of negative time values to strings. (Bug #6049).
  • Fixed a bug in libmysqlclient with wrong conversion of zero date values (0000-00-00) to strings. (Bug #6058)
  • Fixed a bug that caused the server to crash on attempt to prepare a statement with RAND(?). (Bug #5985)
  • Fixed a bug with handling of DATE, TIME, and DATETIME columns in the binary protocol. The problem is compiler-specific and could have been observed on HP-UX, AIX, Solaris9, when compiling with native compiler. (Bug #6025)
  • Fixed a bug with handling of TINYINT columns in the binary protocol. The problem is specific to platforms where the C compiler has the char data type unsigned by default. (Bug #6024)
  • InnoDB: Fixed problem introduced in MySQL 4.0.21 where a connection starting a transaction, doing updates, then FLUSH TABLES WITH READ LOCK, then COMMIT, would cause replication slaves to stop complaining about error 1223. Bug surfaced when using the InnoDB innobackup script. (Bug #5949)
  • InnoDB: Release the dictionary latch during a long cascaded FOREIGN KEY operation, so that we do not starve other users doing CREATE TABLE or other DDL operation. This caused a notorious 'Long semaphore wait' message to be printed to the `.err' log. (Bug #5961)
Versienummer:4.1.7
Besturingssystemen:Windows 9x, Windows NT, Windows 2000, Linux, BSD, Windows XP, macOS, Solaris, UNIX, Windows Server 2003
Website:MySQL
Download:http://dev.mysql.com/downloads/mysql/4.1.html
Licentietype:GPL
Moderatie-faq Wijzig weergave

Reacties (18)

Het is ook wel vermeldenswaardig dat hiermee de laatste Gamma-release achter de rug is (10 oct) en de 4.1 serie in de Production-fase verkeert.

Zeer binnenkort komt ook weer een release uit de 4.0.x serie, namelijk nummer 22.
We are now working actively on MySQL 4.1 and 5.0, and will provide only critical bugfixes for MySQL 4.0 and MySQL 3.23.
Maar volgens die zelfde pagina is de 4.1.x release wel weer een Gamma release?
C.2 Changes in release 4.1.x (Gamma)
:?
Nog niet bijgewerkt blijkbaar.. (gamma-release is de laatste serie voor de production-release).

Maar wat veel belangrijker is:
* MySQL ondersteunt eindelijk subqueries *
Die zitten er al in vanaf 4.1 :). Niets nieuws onder de horizon dus ;)
Half Off-topic:
Wat ik dus nergens kan vinden is een duidelijke roadmap van de verschillende MySQL producten. Wanneer bijv. gepland/verwacht wordt wanneer bepaalde producten de alpha, stable en productie status bereiken. Of is het bij MySQL zo dat men zegt: \\\\\\\"when the time is ready\\\\\\\" ? Hoe zit het bijv met MySQL 5 Wat is daar de planning voor?
Deze pagina is net iets voor jou:
http://dev.mysql.com/doc/mysql/en/News.html
Achter elke release staat of de alpha/beta/gamma/production fase is begonnen

Our TODO section contains what further plans we have for MySQL 4.1 and 5.0. See section 1.6 MySQL and the Future (the TODO).
http://dev.mysql.com/doc/mysql/en/TODO.html
woei!
eindelijk de 4.1 final! daar heb ik lang op zitten wachten.. nu maar hopen dat mijn isp em ook snel installeerd, want ik zie wel wat in de UTF-8 databases en subqueries.. :)
Ik kon na de installatie van deze versie ook geen verbinding maken met mijn clients of PHP. Bij het verbinden kreeg ik de volgende foutmelding:

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client

Na wat zoeken kwam ik uit op de volgende pagina. De nieuwe versie gebruikt een nieuwe manier om wachtwoorden tussen client en server uit te wisselen.

D'r zijn verschillende oplossingen: Als je met een client (mysql.exe, etc) verbinding maakt, zoek dan naar een nieuwe versie van deze client. De reguliere clients worden samen met de nieuwe server ge´nstalleerd in de /bin/ folder/directory. Na het updaten van de clients moet het weer mogelijk te zijn om verbinding te maken.

Ik weet eigenlijk niet of er een nieuwe client beschikbaar is voor PHP, maar heb wel een andere oplossing gevonden in het document waar ik eerder de link van gaf. Maak voor PHP een gebruiker aan in mysql, bijv "GRANT INSERT, UPDATE, SELECT, DELETE ON *.* TO 'php'@'localhost' IDENTIFIED BY 'god'". De gebruiker wordt aangemaakt, maar het wachtwoord moet worden aangepast zodat oude clienten nog kunnen connecten: "UPDATE mysql.user SET password = OLD_PASSWORD('god') WHERE user = 'php'". Het wachtwoord staat nu in de oude vorm, en oudere clients (zoals die in PHP) kunnen hiermee weer connecten.

(Vergeet niet een "FLUSH PRIVILEGES" na het toevoegen/updaten van de nieuwe gebruiker(s)).

\[Edit: heb in m'n enthousiasme de m'n reactie aan het verkeerde bericht gelinkt, excuses.]
Gebruik de mysqli libs (dus ook de mysqli.dll of .so). Deze mysqli is ook speciaal voor MySQL 4.1.x zoals je in de handleiding ook kunt lezen.

Daarna moet je ook alles met mysqli gaan doen, dus bijv. mysqli_connect. En je moet nu aan een query ook de link identifier meegeven (aan alles moet je de link meegeven eigenlijk).

Lees dus ff de mysqli documentatie van PHP door.
Bedankt voor de info, heb het inderdaad nu gezien. Ik denk echter dat de oplossing voor een groot aantal mensen nog steeds een uitkomst kan zijn. Ik test veel van mijn PHP/MySQL scripts op een servertje in m'n netwerk. M'n host heeft echter nog geen versie 4.1x, en ik heb geen idee wanneer dit wel het geval zal zijn.

Op deze manier kan ik toch zowel lokaal als op m'n host zonder al te veel aanpassingen m'n scripts draaien.

Nogmaals dank voor de info :)
Nieuwe MySQL libs compilen en vervolgens PHP opnieuw compilen met deze MySQL support? :)
Ach ja, net de exotische combinatie van PHP5.0.2 met MySQL 4.1.7 en IIS6 geprobeerd.
En al die connect-errors zijn niet weg te krijgen.
Ook niet na het veranderen van de vele opties/instellingen die ik op internet vond zoals --oldpasswords e.d.
--oldpasswords heeft te maken met de manier waarop MySQL zijn wachtwoord opslaat. Vroeger werd daar de PASSWORD() functie voor gebruikt. Tegenwoordig wordt er een nieuwe functie gebruikt, NEW_PASSWORD(), waarbij de hash langer en (als het goed is) veiliger is.

Eigenlijk had dit nooit een probleem mogen zijn, ware het niet dat de PASSWORD() functie door veel mensen in eigen software gebruikt werd. Terwijl er (tegenwoordig?) netjes in de docs staat dat het eigenlijk alleen een interne MySQL functie is.
Let goed op met deze versie! Als je migreert van versie 4.0.x naar 4.1.x werken de meeste phpscripts niet meer! je moet ipv de functies die beginnen met mysql_, functies gebruiken die beginnen met mysqli_. Dus geen mysql_connect(), maar mysqli_connect(). Professionele scripts zoals PHPMyAdmin zijn hier al op voorbereid.
Ik kom hier ook net achter... Maar daarvoor moet je wel PHP5 installeren. Ik probeerde de mysqli-module namelijk in mijn PHP4 te laden, maar dat wil dus niet...
Ik krijg deze niet werkend met PHP 4.3.9 of 5.0.2 op m'n Windows Server :(
Hier zit overigens de bug (die in MySQL 4.0.21 wel zit) waardoor mysqldump 'in samenwerking met' InnoDB tables de server laat crashen niet in!

http://bugs.mysql.com/bug.php?id=5538
ter info:
----------
je moet ODBC-versie 3.51.10 geinstalleerd hebben om te kunnen connecten naar een MySQL 4.1.7 server. Als je 3.51.06 bijvoorbeeld geinstalleerd heb staan en je hebt bijv. een programmatje dat via ODBC connect naar MySQL dan crasht het bij het starten.

Je kunt ook MySQL-front 2.5 niet meer gebruiken voor het 'beheren' van je MySQL 4.1.7 server. Deze kan niet meer over met het authenticatie-protocol. versie 3.x.x werkt wel weer.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True