MySQL/InnoDB-4.0.21 is released
Hi! InnoDB is a MySQL table type that provides FOREIGN KEY constraints, 'ACID' transactions, row-level locking, a non-locking consistent read (MVCC), and a commercial online backup tool. Release 4.0.21 is a bugfix release of the stable MySQL-4.0 branch. It is recommended for production use. You can download it from http://dev.mysql.com/downloads/mysql/4.0.html The most important InnoDB bug fixed is probably the '4 billion bug' that could cause InnoDB to complain: InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the InnoDB: previous allocated area! InnoDB: Apparent memory corruption: mem dump len 500; hex and crash mysqld at every 4 billionth allocation of memory. The complete changelog for InnoDB: Functionality added or changed: * Renamed the `innodb.status.pid' files (created in the data directory) to `innodb_status.pid'. This avoids problems on filesystems that do not allow multiple periods in filenames. * Added innodb_status_file system variable to mysqld to control whether output from SHOW INNODB STATUS is written to a `innodb_status.pid' file in the data directory. By default, the file is not created. To create it, start mysqld with the --innodb_status_file=1 option. * Changes for NetWare to exit InnoDB gracefully on NetWare even in a case of an assertion failure, instead of intentionally crashing the `mysqld' server process. Bugs fixed: * Fixed a bug in ON DELETE CASCADE and ON UPDATE CASCADE foreign key constraints: long chains of cascaded operations would cause a stack overflow and crash the server. Cascaded operations are now limited to 15 levels. (Bug #4446) * Fixed a possible bug in LOCK TABLES introduced in MySQL/InnoDB-4.0.19: The count of tables explicitly locked by a transaction was incremented only after the locks were granted, but decremented when the lock structures were destroyed. * Fixed a bug in UNLOCK TABLES in AUTOCOMMIT=0 mode, introduced in MySQL/InnoDB-4.0.19: The memory allocated for some locks acquired by the transaction could be deallocated before those locks were released. The bug can lead to crashes and memory corruption of the buffer pool when the transaction acquires a large number of locks (table locks or row-level locks). * Increment the InnoDB watchdog timeout during CHECK TABLE. A long-running CHECK TABLE would cause InnoDB to complain about a 'long semaphore wait', and crash the server, if a query had to wait more than 600 seconds behind that CHECK TABLE operation. (Bug #2694) * If you configure innodb_additional_mem_pool_size so small that InnoDB memory allocation spills over from it, then every 4 billionth spill may cause memory corruption. A symptom is a printout like below in the `.err' log. The workaround is to make innodb_additional_mem_pool_size big enough to hold all memory allocation. Use SHOW INNODB STATUS to determine that there is plenty of free space available in the additional mem pool, and the total allocated memory stays rather constant. InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the InnoDB: previous allocated area! InnoDB: Apparent memory corruption: mem dump len 500; hex * The special meaning of the table names innodb_monitor, innodb_lock_monitor, innodb_tablespace_monitor, innodb_table_monitor, and innodb_validate in CREATE TABLE and DROP TABLE statements was accidentally removed in MySQL/InnoDB-4.0.19. The diagnostic functions attached to these special table names (see section 16.12.1 SHOW INNODB STATUS and the InnoDB Monitors) are accessible again in MySQL/InnoDB-4.0.21. * When the private SQL parser of InnoDB was modified in MySQL/InnoDB-4.0.19 in order to allow the use of the apostrophe (`'') in table and column names, the fix relied on a previously unused function mem_realloc(), whose implementation was incorrect. As a result, InnoDB can incorrectly parse column and table names as the empty string. The InnoDB realloc() implementation has been corrected in MySQL/InnoDB-4.0.21. * Fixed a glitch introduced in 4.0.18 and 4.1.2: in SHOW TABLE STATUS InnoDB systematically overestimated the row count by 1 if the table fit on a single 16 kB data page. * InnoDB created temporary files with the C library function tmpfile(). On Windows, the files would be created in the root directory of the current file system. To correct this behavior, the invocations of tmpfile() were replaced with code that uses the function create_temp_file() in the MySQL portability layer. (Bug #3998) * If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152. * If there was little file I/O in InnoDB, but the insert buffer was used, it could happen that 'Pending normal aio reads' was bigger than 0, but the I/O handler thread did not get waken up in 600 seconds. This resulted in a hang, and crashing of InnoDB. * If we RENAMEd a table, InnoDB forgot to load the FOREIGN KEY constraints that reference the new table name, and forgot to check that
Still problem with MyODBC :((
Hi all, I have still problem with MyODBC. When I want to connect to my Database server which is a Linux machine, it returns an error: Client does not support authentication protocol requested by server; consider upgrading MySQL client I visited MySQL documents but the suggestions were about when a version prior to 4.1 attempts to connect to a server which runs MySQL version 4.1 or newer, but this is not my case. Because, both my client and server use same version of MySQL and they use MySQL version 4.1 not older releases. Can anyone help ? :(( Yours, Danesh Daroui
Re: Best way to get Access DB structures into MySQL ??
Christopher, What is the best way to take the structure of multiple tables in Access and get them re-created in MySQL without doing that all by hand? Is there a way to do the equivalent of a Show Create Table in Access, that I could then use in MySQL ?? The only way I know is to use a tool like Dezign or DbScripter to generate a script. PB
Re: Best way to get Access DB structures into MySQL ??
Download yourself the trial version of Database Workbench at www.upscene.com and try the Schema Migration tool. Connect to Access via ADO and migrate the existing structure to MySQL. With regards, Martijn Tonies Database Workbench - developer tool for InterBase, Firebird, MySQL MS SQL Server. Upscene Productions http://www.upscene.com What is the best way to take the structure of multiple tables in Access and get them re-created in MySQL without doing that all by hand? Is there a way to do the equivalent of a Show Create Table in Access, that I could then use in MySQL ?? Chris Hood Investigator Verizon Global Security Operations Center Email: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] Desk: 972.399.5900 Verizon Proprietary -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: Problems Compiling
Andrew Wheeler [EMAIL PROTECTED] wrote: I am not sure that this is the correct list. I did not see any list that seemed more appropriate. Private email answered here. Well if it compiling is not a configure, make, make install job perhaps you could point me in the direction to learn the intricacies of the job? First, see http://dev.mysql.com/doc/mysql/en/Installing_source.html And don't forget about glibc patch. -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ __ / |/ /_ __/ __/ __ \/ /Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net ___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: MySQL 4.1.4 RPM Distribution startup problem
Egor Egorov [EMAIL PROTECTED] wrote: Then temporary give a+rw on /root/tmp (don't forget to +x /root) and see what's mysqld_safe gonna write there. Maybe it's a bug in the script. Also please check the environment for TMPDIR. After this mysql started successfully but it didn't write anything in /root/tmp. [] Does MySQL need rights to /root/tmp to work well? No. It's a weird behavior. I will investigate and get back to you. Igor, First, does the mysql user exists? Second, here is what Marko Makela told me about your situation: It's probably from innobase_mysql_tmpfile(), which is called two or three times at startup. That function relies on create_temp_file(). Has the MySQL configuration parameter tmpdir or the environment variable TMPDIR been set incorrectly, or is the default value somehow incorrect? Could it be that the directory /var/mysqltmp does not exist, and the fall-back value is incorrect? Maybe $HOME is pointing to /root, but mysqld is being run as a non-privileged user? -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ __ / |/ /_ __/ __/ __ \/ /Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net ___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: Analyze Dreaweaver's PHP/MySQL code
On Fri, 10 Sep 2004 17:49:21 -0700, Andrew Kreps wrote: You have a pretty good handle on what's happening there, I hope I can add some clarity. The Resource Id you're trying to echo is a pointer to a MySQL result set, you aren't actually working with the data yet. That's where the mysql_fetch functions come in. The mysql_fetch_assoc function fetches the next line of the result set and stores it in an associative array, so that you can reference your results by their database field name, i.e. $row_RS_CourseEnrollment['Id_field']. Otherwise, using a similar function like mysql_fetch_row, you'd end up with $row_RS_CourseEnrollment[0] for the first field, [1] for the second, and so on. If you ever change your database and you're using select *, this can get messy. Additionally, the mysql_fetch functions are simply returning a portion of the result of your previously executed query, so the database isn't re-queried every time you loop through it. Hope this helps! On Fri, 10 Sep 2004 16:12:06 -0500, Robb Kerr [EMAIL PROTECTED] wrote: Here are my questions... 1) Do I understand what's going on? 2) When I ECHO the variable created in Line 4 of the connection I get Resource id #4. Why don't I get Array or something I can read? 3) Because the last line of the repeat region includes mysql_fetch_assoc($variableDefiningTheQuery) does this mean that the database is queried every time through the loop? 4) I can't find mysql_fetch_assoc() in the MySQL documentation. What's this command do? Thanx Andrew. I thought that's what was going on. I was just concerned because I didn't know exactly what mysql_fetch_assoc() was doing. I was afraid that the database was being queried every time through the repeat region loop. I found it hard to believe that DW would code so inefficiently, but then again, it might. -- Robb Kerr Digital IGUANA Helping Digital Artists Achieve their Dreams http://www.digitaliguana.com http://www.cancerreallysucks.org -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
errno: 144
Hello everybody, MySQL was working perfectly and soudenly i get an error whan i start it ns31129:/usr/local/mysql/bin# ./safe_mysqld --user=sql [1] 3115 ns31129:/usr/local/mysql/bin# Starting mysqld daemon with databases from /usr/local/mysql/var 040911 16:11:20 mysqld ended I cant see in the .err file (at the end) 040911 14:45:02 /usr/local/mysql/libexec/mysqld: Can't open file: 'host.MYD'. (errno: 144) My Disk space was complet (100%) ... now it's good (95%); but always the same error ... How can i do to resolve this problem ??? Thanks, Diego
Wrong query result
Sorry to insist with this, but still can't find the reason. Any ideas? -Forwarded Message- Hi, I'm using MySql 4.1.4 Gamma and the following query returns values containing N and Ñ instead of only those containing Ñ. The query is as follows Select Lastname from table1 where locate(Ñ,Lastname)0 The result set includes values like this HERNANDEZ NUÑES MONTAGNE MIÑO ANTIÑACO MORENO GONZALEZ In other words mysql seems to mistake N with Ñ The charset for the tables is latin1 and the type InnoDB. What is happenning? Mauricio -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
mysql and leftt outer join
Lets say I have a Database defined as create table Photos ( PhotoIdxVarchar(20), PhotograherIdx varchar(20), PhotoTypeIdxvarchar(20), CameraIdx varchar(20) PhotoDate DateTime ); Create table Photographer ( PhotographerIdx varchar(20), Photographervarchar(50)); Create table PhotoType ( PhotoTypeIdxvarchar(20), PhotoType varchar(50)); Create table Camera ( CameraIdx varchar(20), Camera varchar(50)); Therefore, a select to print the basic info would be: select Photos.PhotoIdx, Photographer.Photograper, PhotoType.PhotoType, Camera.Camera, Photos.PhotoDate from Photos, Photorapher, PhotoType, Camera where ((Photos.PhotograherIdx = Photographer.PhotograperIdx) and (Photos.PhotoTypeIdx = PhotoType.PhotoType) and (Photos.CameraIdx = Camera.CameraIdx)); The problem with doing this is that if any of the lookup indexes are null (such as Photos.PhotographerIdx, Photos.PhotoTypeIdx or Photos.CameraIdx) or point to a nonexistent record in the lookup table, the record will not be selected. So one has to use a left outer join. The problem is I can get a left outer join to work that links two table, but not more. So how woulds you construct the above select to use only left outer joins??? Thx,Terry -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Joins Syntax
In the query below, I want to obtain all options_totals table records(500 or so), except for those users_options records where the userID=3. i.e. Not retrieve options the user has already selected. Have tried many combinations of joins, but get either just the records which are in the users_options table, less userID=3, or failing that no records at all. SELECT DISTINCT options_totals.optionID AS optionID, options.optioncode, options_totals.nameID , options_names.cname, users_options.listtype AS listtype, users_options.userstatus AS userstatus , users_options.userID AS userID FROM options_totals LEFT JOIN options_names ON options_names.ID = options_totals.nameID LEFT JOIN options ON options.ID = options_totals.optionID LEFT JOIN users_options ON options_totals.optionID = users_options.optionID WHERE userID 3 ORDER BY userID Appreciate if someone can show me the right syntax. Graham
Please Disregard This Message
Please disregard. Attempting to verify that I can send and receive messages -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: mysql and leftt outer join
Terry A. Haimann wrote: Lets say I have a Database defined as create table Photos ( PhotoIdxVarchar(20), PhotograherIdx varchar(20), PhotoTypeIdxvarchar(20), CameraIdx varchar(20) PhotoDate DateTime ); Create table Photographer ( PhotographerIdx varchar(20), Photographervarchar(50)); Create table PhotoType ( PhotoTypeIdxvarchar(20), PhotoType varchar(50)); Create table Camera ( CameraIdx varchar(20), Camera varchar(50)); Therefore, a select to print the basic info would be: select Photos.PhotoIdx, Photographer.Photograper, PhotoType.PhotoType, Camera.Camera, Photos.PhotoDate from Photos, Photorapher, PhotoType, Camera where ((Photos.PhotograherIdx = Photographer.PhotograperIdx) and (Photos.PhotoTypeIdx = PhotoType.PhotoType) and (Photos.CameraIdx = Camera.CameraIdx)); A lot of typos in that, but I'll assume that wasn't the problem. The problem with doing this is that if any of the lookup indexes are null (such as Photos.PhotographerIdx, Photos.PhotoTypeIdx or Photos.CameraIdx) or point to a nonexistent record in the lookup table, the record will not be selected. So one has to use a left outer join. The problem is I can get a left outer join to work that links two table, but not more. It's hard to say what you did wrong without seeing your query. So how woulds you construct the above select to use only left outer joins??? Thx, Terry This should do: SELECT Photos.PhotoIdx, Photographer.Photographer, PhotoType.PhotoType, Camera.Camera, Photos.PhotoDate FROM Photos LEFT JOIN Photographer ON Photos.PhotographerIdx = Photographer.PhotographerIdx LEFT JOIN PhotoType ON Photos.PhotoTypeIdx = PhotoType.PhotoType LEFT JOIN Camera ON Photos.CameraIdx = Camera.CameraIdx; Michael -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]
Re: Best way to get Access DB structures into MySQL ??
[EMAIL PROTECTED] wrote: What is the best way to take the structure of multiple tables in Access and get them re-created in MySQL without doing that all by hand? Is there a way to do the equivalent of a Show Create Table in Access, that I could then use in MySQL ?? Chris Hood Investigator Verizon Global Security Operations Center Email: mailto:[EMAIL PROTECTED] [EMAIL PROTECTED] Desk: 972.399.5900 Verizon Proprietary MySQL-Front has an ODBC import feature. The old 2.5 version was free (looks like it still is) http://www.bumpersoft.com/Programming/Databases_and_Networks/Review_982_index.htm It's since been taken over by new developers, and newer versions are available for a reasonable fee at http://www.mysqlfront.de/download.html -- Chris Martin Web Developer Open Source Web Standards Advocate http://www.chriscodes.com/ -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]