Bug #52644 | mysql_install_db: 'Unknown database mysql' with non-default tmpdir | ||
---|---|---|---|
Submitted: | 7 Apr 2010 4:30 | Modified: | 23 Dec 2010 19:49 |
Reporter: | Buck Golemon | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: General | Severity: | S3 (Non-critical) |
Version: | 5.1.40, 5.0 | OS: | Linux (Redhat 4 x64) |
Assigned to: | Assigned Account | CPU Architecture: | Any |
Tags: | mysql_install_db tmpdir |
[7 Apr 2010 4:30]
Buck Golemon
[7 Apr 2010 8:09]
Sveta Smirnova
Thank you for the report. I can not repeat described behavior. Does directory /proj/pdsql2/pdsql3-data/tmp exist? If yes please provide output of `ls -la /proj/pdsql2/pdsql3-data/tmp`
[10 Apr 2010 17:19]
Buck Golemon
I believe you're right. The tmpdir didn't exist. Should change this bug to a feature request. One of: a) better error message b) mkdir -p $tmpdir Thanks for looking at it. --Buck
[10 Apr 2010 17:22]
Buck Golemon
I might also put this, for good measure: chmod -f 1777 $tmpdir
[10 Apr 2010 19:00]
Sveta Smirnova
Thank you for the feedback. Verified as feature request. I'd prefer to fix error message.
[10 Apr 2010 20:34]
Daniel Fischer
This is a server bug. When the temporary directory can't be used, creating a temporary table shows a misleading error that the database doesn't exist. (The SQL script that mysql_install_db runs creates temporary tables, hence the error is visible there.) Can be reproduced like this (mysqld command line is for a clean, built bzr tree): $ mkdir -p datadir/mysql ; (echo "use mysql;"; echo "create temporary table foo (a int);") | ./sql/mysqld --no-defaults --bootstrap --basedir=. --language=./sql/share/english --datadir=datadir --bootstrap --tmpdir=/non/existant/directory ERROR: 1049 Unknown database 'mysql' 100410 22:33:13 [ERROR] Aborting
[5 Jul 2010 7:06]
Sveta Smirnova
Bug #54966 was marked as duplicate of this one
[3 Dec 2010 18:41]
Louis Small
Excellent, I am so glad I found this thread. I just had this same problem, and then realized the tmpdir in my.cnf did not exist. After I created the directory the problem was solved. I was using the my.cnf from another of my servers that had a custom temp dir specified.
[3 Dec 2014 8:02]
Daniƫl van Eeden
5.6.21$ ./scripts/mysql_install_db --defaults-extra-file=/tmp/my.cnf --datadir=/tmp/data56 --lc-messages-dir=/home/dveeden/mysql/5.6.21/share Installing MySQL system tables...2014-12-03 08:47:49 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. 2014-12-03 08:47:49 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 5.6.21$ cat /tmp/err.log 2014-12-03 08:47:49 14411 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000) 2014-12-03 08:47:49 14411 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000) 2014-12-03 08:47:49 14411 [Note] InnoDB: Using atomics to ref count buffer pool pages 2014-12-03 08:47:49 14411 [Note] InnoDB: The InnoDB memory heap is disabled 2014-12-03 08:47:49 14411 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2014-12-03 08:47:49 14411 [Note] InnoDB: Memory barrier is not used 2014-12-03 08:47:49 14411 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-12-03 08:47:49 14411 [Note] InnoDB: Using Linux native AIO 2014-12-03 08:47:49 14411 [Note] InnoDB: Using CPU crc32 instructions ./bin/mysqld: Can't create/write to file '/tmp/nowhere/ib0IVY2O' (Errcode: 2 - No such file or directory) 2014-12-03 08:47:49 7fef8c4b5780 InnoDB: Error: unable to create temporary file; errno: 2 2014-12-03 08:47:49 14411 [ERROR] Plugin 'InnoDB' init function returned error. 2014-12-03 08:47:49 14411 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2014-12-03 08:47:49 14411 [ERROR] Unknown/unsupported storage engine: InnoDB 2014-12-03 08:47:49 14411 [ERROR] Aborting 2014-12-03 08:47:49 14411 [Note] Binlog end 2014-12-03 08:47:49 14411 [Note] ./bin/mysqld: Shutdown complete 5.6.21$ cat /tmp/my.cnf [mysqld] tmpdir=/tmp/nowhere log-error=/tmp/err.log 5.7.5-m15$ ./bin/mysql_install_db --defaults-extra-file=/tmp/my.cnf --datadir=/tmp/data57 --lc-messages-dir=/home/dveeden/mysql/5.7.5-m15/bin/share/mysql 5.7 didn't create a error log. It did create a fine looking datadir. It failed on startup with a message similar to 5.6 in the error log.