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 , , 20 reacties
Bron: MySQL, submitter: Slagroom

De mensen achter MySQL hebben gisteren een maintenance release uitgebracht in de vorm van versie 4.0.14. Dit databse-programma wordt onder andere gebruikt door webmasters bij het maken van dynamische webpagina's. De release notes van de nieuwe release zien er als volgt uit:

Functionality added or changed:
  • A documentation change: Function `INTERVAL(NULL, ...)' returns `-1'.
  • Enabled `INSERT' from `SELECT' when the table into which the records are inserted is also a table listed in the `SELECT'.
  • Allow `CREATE TABLE' and `INSERT' from any `UNION'.
  • The `SQL_CALC_FOUND_ROWS' option now always returns the total number of rows for any `UNION'.
  • Removed `--table' option from `mysqlbinlog' to avoid repeating `mysqldump' functionality.
  • Changed optimiser slightly to prefer index lookups over full table scans.
  • Added thread-specific `max_seeks_for_key' variable that can be used to force the optimiser to use keys instead of table scans even if the cardinality of the index is low.
  • Added optimisation that converts `LEFT JOIN' to normal join in some cases.
  • A documentation change: added a paragraph about failover in replication (how to use a surviving slave as the new master, how to resume to the original setup). *Note Replication FAQ::.
  • A documentation change: added warning notes about safe use of the `CHANGE MASTER' command. *Note CHANGE MASTER TO::.
  • MySQL now issues a warning (not an error, as in 4.0.13) when it opens a table that was created with MySQL 4.1.
  • Added `--nice' option to `mysqld_safe' to allow setting the niceness of the `mysqld' process. (Thanks to Christian Hammers for providing the initial patch.) (Bug #627)
  • Added `--read-only' option to cause `mysqld' to allow no updates except from slave threads or from users with the `SUPER' privilege. (Original patch from Markus Benning).
  • `SHOW BINLOG EVENTS FROM x' where `x' is strictly less than 4 now silently converts `x' to 4 instead of printing an error. The same change was done for `CHANGE MASTER TO MASTER_LOG_POS=x' and `CHANGE MASTER TO RELAY_LOG_POS=x'.
  • `mysqld' now only adds an interrupt handler for the `SIGINT' signal if you start it with the new `--gdb' option. This is because some MySQL users encountered strange problems when they accidently sent `SIGINT' to `mysqld' threads.
  • `RESET SLAVE' now clears the `Last_errno' and `Last_error' fields in the output of `SHOW SLAVE STATUS'.
  • Added `max_relay_log_size' variable; the relay log will be rotated automatically when its size exceeds `max_relay_log_size'. But if `max_relay_log_size' is 0 (the default), `max_binlog_size' will be used (as in older versions). `max_binlog_size' still applies to binary logs in any case.
  • `FLUSH LOGS' now rotates relay logs in addition to the other types of logs it already rotated.
Bugs fixed:
  • Comparison/sorting for `latin1_de' character set was rewritten. The old algorithm could not handle cases like `"sa"" > "ssa"'. *Note German character set::. In rare cases it resulted in table corruption.
  • Fixed a problem with the password prompt on Windows (Bug #683)
  • `ALTER TABLE ... UNION=(...)' for `MERGE' table is now allowed even if some underlying `MyISAM' tables are read-only. (Bug #702)
  • Fixed a problem with `CREATE TABLE t1 SELECT x'41''. (Bug #801)
  • Removed some incorrect lock warnings from the error log.
  • Fixed memory overrun when doing `REPAIR' on a table with a multi-part auto_increment key where one part was a packed `CHAR'.
  • Fixed a probable race condition in the replication code that could potentially lead to `INSERT' statements not being replicated in the event of a `FLUSH LOGS' command or when the binary log exceeds `max_binlog_size'. (Bug #791)
  • Fixed a crashing bug in `INTERVAL' and `GROUP BY' or `DISTINCT'. (Bug #807)
  • Fixed bug in `mysqlhotcopy' so it actually aborts for unsuccessful table copying operations. Fixed another bug so that it succeeds when there are thousands of tables to copy. (Bug #812)
  • Fixed problem with `mysqlhotcopy' failing to read options from option files. (Bug #808)
  • Fixed bugs in optimiser that sometimes prevented MySQL from using `FULLTEXT' indexes even though it was possible (for example, in `SELECT * FROM t1 WHERE MATCH a,b AGAINST("index") > 0').
  • Fixed a bug with "table is full" in `UNION' operations.
  • Fixed a security problem that enabled users with no privileges to obtain information on the list of existing databases by using `SHOW TABLES' and similar commands.
  • Fixed a stack problem on UnixWare/OpenServer.
  • Fixed a configuration problem on UnixWare/OpenUnix and OpenServer.
  • Fixed a stack overflow problem in password verification.
  • Fixed a problem with `max_user_connections'.
  • `HANDLER' without an index now works properly when a table has deleted rows. (Bug #787)
  • Fixed a bug with `LOAD DATA' in `mysqlbinlog'. (Bug #670).
  • Fixed that `SET CHARACTER SET DEFAULT' works. (Bug #462)
  • Fixed `MERGE' table behaviour in `ORDER BY ... DESC' queries. (Bug #515)
  • Fixed server crash on `PURGE MASTER LOGS' or `SHOW MASTER LOGS' when the binary log is off. (Bug #733)
  • Fixed password-checking problem on Windows. (Bug #464)
  • Fixed the bug in comparison of a `DATETIME' column and an integer constant. (Bug #504)
  • Fixed remote mode of `mysqlbinlog'. (Bug #672)
  • Fixed `ERROR 1105: Unknown error' that occurred for some `SELECT' queries, where a column that was declared as `NOT NULL' was compared with an expression that took `NULL' value.
  • Changed timeout in `mysql_real_connect()' to use `poll()' instead of `select()' to work around problem with many open files in the client.
  • Fixed incorrect results from `MATCH ... AGAINST' used with a `LEFT JOIN' query.
  • Fixed a bug that limited the maximum value for `mysqld' variables to 4294967295 when they are specified on the command line.
  • Fixed a bug that sometimes caused spurious "Access denied" errors in `HANDLER ... READ' statements, when a table is referenced via an alias.
  • Fixed portability problem with `safe_malloc', which caused MySQL to give "Freeing wrong aligned pointer" errors on SCO 3.2.
  • `ALTER TABLE ... ENABLE/DISABLE KEYS' could cause a core dump when done after an `INSERT DELAYED' statement on the same table.
  • Fixed problem with conversion of localtime to GMT where some times resulted in different (but correct) timestamps. Now MySQL should use the smallest possible timestamp value in this case. (Bug #316)
  • Very small query cache sizes could crash `mysqld'. (Bug #549)
  • Fixed a bug (accidentally introduced by us but present only in version 4.0.13) that made `INSERT ... SELECT' into an `AUTO_INCREMENT' column not replicate well. This bug is in the master, not in the slave. (Bug #490)
  • Fixed a bug: When an `INSERT ... SELECT' statement inserted rows into a non-transactional table, but failed at some point (for example, due to a "Duplicate key" error), the query was not written to the binlog. Now it is written to the binlog, with its error code, as all other queries are. About the `slave-skip-errors' option for how to handle partially completed queries in the slave, see *Note Replication Options::. (Bug #491)
  • `SET FOREIGN_KEY_CHECKS=0' was not replicated properly. The fix probably will not be backported to 3.23.
  • On a slave, `LOAD DATA INFILE' which had no `IGNORE' or `REPLACE' clause on the master, was replicated with `IGNORE'. While this is not a problem if the master and slave data are identical (a `LOAD' that produces no duplicate conflicts on the master will produce none on the slave anyway), which is true in normal operation, it is better for debugging not to silently add the `IGNORE'. That way, you can get an error message on the slave and discover that for some reason, the data on master and slave are different and investigate why. (Bug #571)
  • On a slave, `LOAD DATA INFILE' printed an incomplete "Duplicate entry '%-.64s' for key %d"' message (the key name and value were not mentioned) in case of duplicate conflict (which does not happen in normal operation). (Bug #573)
  • When using a slave compiled with `--debug', `CHANGE MASTER TO RELAY_LOG_POS' could cause a debug assertion failure. (Bug #576)
  • When doing a `LOCK TABLES WRITE' on an InnoDB table, commit could not happen, if the query was not written to the binary log (for example, if `--log-bin' was not used, or `binlog-ignore-db' was used). (Bug #578)
  • If a 3.23 master had open temporary tables that had been replicated to a 4.0 slave, and the binlog got rotated, these temporary tables were immediately dropped by the slave (which caused problems if the master used them subsequently). This bug had been fixed in 4.0.13, but in a manner which caused an unlikely inconvenience: if the 3.23 master died brutally (power failure), without having enough time to automatically write `DROP TABLE' statements to its binlog, then the 4.0.13 slave would not notice the temporary tables have to be dropped, until the slave `mysqld' server is restarted. This minor inconvenience is fixed in 3.23.57 and 4.0.14 (meaning the master must be upgraded to 3.23.57 and the slave to 4.0.14 to remove the inconvenience). (Bug #254)
  • If `MASTER_POS_WAIT()' was waiting, and the slave was idle, and the SQL slave thread terminated, `MASTER_POS_WAIT()' would wait forever. Now when the SQL slave thread terminates, `MASTER_POS_WAIT()' immediately returns `NULL' ("slave stopped"). (Bug #651)
  • After `RESET SLAVE; START SLAVE;', the `Relay_log_space' value displayed by `SHOW SLAVE STATUS' was too big by four bytes. (Bug #763)
  • If a query was ignored on the slave (because of `replicate-ignore-table' and other similar rules), the slave still checked if the query got the same error code (0, no error) as on the master. So if the master had an error on the query (for example, "Duplicate entry" in a multiple-row insert), then the slave stopped and warned that the error codes didn't match. (Bug #797)
Additional notes:
  • In addition to Solaris 8/9 for SPARC, we now also offer binaries for Sun Solaris 8 on the Intel x86 architecture.
  • Binaries for FreeBSD 5.0 (sparc64) have been added (thanks to Ken McKittrick for granting us access to such a system)
  • Due to technical problems with the build hosts, we currently can not offer binaries for Linux/s390 and binaries for AIX 4.3 (compiled with gcc). These will be added as soon as these problems have been resolved. We apologize for any inconveniences that may cause you.
[break]Op deze pagina kan MySQL 4.0.14 voor het juiste OS gedownload worden .
Moderatie-faq Wijzig weergave

Reacties (20)

wel een voordeel dat tegenwoordig MySQL ook in een zipje geleverd wordt voor windows, hoef je niet altijd die installer te draaien als je wilt upgraden
Dan heb je ook gelukkig geen last meer van die 10-voudige register dingus onder "software"

Ik zie dat versie 4.0.14a al uit is :o
Jammer voor de mensen die hem net binnen hebben }>
Dit noem ik nu eens een changelog!
Ik moet zeggen dat ik zeer tevreden ben over 4.x .. er zijn spijtig genoeg wel een aantal applicaties (vB bijvoorbeeld) die er net niet zo goed mee overweg kunnen :(.
vb als in Visual Basic ? Wat gaat er dan niet goed ?
Denk dat die vBulletin bedoeld ;).
hmm... is er iemand die kan uitleggen waarom je bij de installatie "4.0.11 gamma" ziet staan terwijl ze hier over 4.0.14 praten?


Ik ben de laatste paar weken ook een beetje bezig met MySQL (voorheen altijd MS SQL) en heb er het een en ander over gelezen. Ik heb gelezen dat MySQL zelf aangeeft dat er met meer dan 50.000.000 records gewerkt kan worden maar dat er ook bedrijven zijn die werken met 5.000.000.000 (!!) records verspreid over 60.000 (!!) tabellen. En het doel van MySQL is om de meest gebruikte database ter wereld te worden en dan ook nog eens volledig GRATIS.

Die gasten van MySQL zijn volgens mij wel goed bezig.
Ik snap soms niet waarom dit gratis word aangeboden.. Waar halen ze hun geld vandaan?
MySQL zelf is een Open Source project. Om dit echter commercieel te promoten, support te bieden, etc., is er een bedrijf wat MySQL AB heet. Zij verzorgen betaalde support, een gedeelte van de ontwikkeling van MySQL, drivers richting verschillende platformen etc. etc.

Zoals op www.mysql.com/company/index.html staat:
MySQL AB is the company that develops, supports and markets the MySQL database server globally. Our mission is to make superior data management available and affordable for all, and to contribute to building the mission-critical high-volume systems and products of tomorrow. We have made our product available at zero price under the GNU General Public License (GPL), and we also sell it under a commercial license to those who do not wish to be bound by the terms of the GPL.
Well euhm, gamma is de derde letter van het alfabet en 1 + 3 = 4? Weet het ook niet hoor :P.

En ze zijn inderdaad zeer goed bezig .. ze gaan overigens samenwerken met de mensen van SAP ;).
Het zou tijd worden dat er weer eens een nieuwe versie kwam, wat een gigantische lijst met bugfixes btw

Nu maar is kijken of er ook een merkbaar verschil is :*)
de 4.0.x serie is er net. En de 4.1 is net uit... je hebt wel haast :-)
Wat Rick van Hattem misschien bedoeld is dat er een redelijk ange tijd zat tussen deze en vorige versie terwijl de vorige versie echt zwaar brak was.
Persoonlijk ben ik terug gegaan naar versie 3 omdat ik MySQL 4 niet meer in een productie omgeving durfde te draaien. De meest gekke fouten kwamen voor op zowel Windows als Linux platform.

Deze versie heb ik daarom sinds vanochtend geïsoleerd draaien op een enkele server :)
MySQL kan prima met VB(A) overweg, je moet alleen wel de juiste spullen gebruiken. Ik heb zelf met VB en ADO een applicatie gebouwd die prima werkt.
Overigens de changelogs zijn altijd zo enorm.(ik denk dat er hard wordt gewerkt ;)
Verder is het ook nog zo dat er iets is als PostgreSQL (zie http://advocacy.postgresql.org/advantages/?lang=en), en die zijn ook gratis, zelfs open source....
MySQL heeft zich in het verleden meer op de Web Aplicatie markt gericht, en begint met versie 4 en 5 een beetje een 'volwassen' RDBMS te worden.
Yups. Ik blijf voorlopig nog ff op PostgreSQL hangen. Als ik naar hun todo lijstje kijk dan zijn die ook nog mooie dingen van plan te maken:

* Master/Slave servers
* Database replicatie
* Queries over meerdere databases en/of servers

en nog wel een paar leuke. Zie hier.
Tsja, het lijkt wel een wedstrijd, maar replicatie heeft MySQL dus al sinds een jaar. Ik denk dat beide steeds meer naar elkaar toe zullen groeien, en dat we ons wild kunnen gaan lachen om (of ergeren aan) de flame wars tussen de evangelistas van de verscheidene systemen. :)

Overigens in het verleden was PostgreSQL volgens verscheidene opinies (ik ken het zelf niet) nogal bewerkelijk. Dat schijnt een stuk beter te gaan tegenwoordig. Dus wellicht ga ik het binnenkort ook eens installeren en mee spelen.
had versie 4 al. Ben nu upgrade aan het draaien.
Gebruik als distro altijd Red Hat, maar compileer apache, php, mysql, postfix bind, samba etc allemaal zelf.

Gr. Rob
Gelukkig. Ben niet de enige die zelf comileerd.

Apache, Snort, Acid, PHP, Mysql enz..
Neem gentoo, dan compileer je alles

zelfs gcc }>
Tering en dan zeggen ze dan MS software soms bugs bevat. Er zijn dus meerdere software applicaties die massa bugs bevatten

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