| Bug #48897 | Invalid VIEW incorrectly handled by mysqldump | ||
|---|---|---|---|
| Submitted: | 19 Nov 2009 10:32 | Modified: | 20 Dec 2009 7:53 |
| Reporter: | Arjen Lentz | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | MySQL Server: mysqldump Command-line Client | Severity: | S2 (Serious) |
| Version: | 5.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysqldump | ||
[19 Nov 2009 10:32]
Arjen Lentz
[19 Nov 2009 12:31]
Valeriy Kravchuk
Thank you for the problem report. What exact version, 5.0.x, you had used? With mysqldump from 5.0.86, for example, I've got: C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump -uroot -proot -P3308 --dat abases t -- MySQL dump 10.11 -- -- Host: localhost Database: t -- ------------------------------------------------------ -- Server version 5.0.86-community-nt-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Current Database: `t` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `t` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `t`; mysqldump: Got error: 1356: View 't.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when using LO CK TABLES
[19 Nov 2009 21:39]
Arjen Lentz
It was a 5.0.87 mysqldump talking to a 5.0.45 (RHEL 5 stock version) server. So this is curious. Why are you getting that error and I am not? My mysqldump is as new as yours, and 5.0.45 hands back the same warning on show create view.
[20 Nov 2009 7:19]
Valeriy Kravchuk
I think this is because of (default) sql_mode. I have: mysql> select @@sql_mode; +----------------------------------------------------------------+ | @@sql_mode | +----------------------------------------------------------------+ | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +----------------------------------------------------------------+ 1 row in set (0.00 sec) Please, check.
[20 Nov 2009 7:28]
Arjen Lentz
sql_mode=''
[20 Nov 2009 7:53]
Valeriy Kravchuk
Sorry, in my case sql_mode does not matter really. Look:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot -P3308 test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.86-community-nt MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
1 row in set (0.00 sec)
mysql> create database tt;
Query OK, 1 row affected (0.02 sec)
mysql> use tt
Database changed
mysql> CREATE TABLE t1 (i int);
Query OK, 0 rows affected (0.14 sec)
mysql> CREATE VIEW v1 AS SELECT * from t1;
Query OK, 0 rows affected (0.00 sec)
mysql> DROP TABLE t1;
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql> SHOW CREATE VIEW v1 \G
*************************** 1. row ***************************
View: v1
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY
DEFINER VIEW `v1` AS select `tt`.`t1`.`i` AS `i` from `t1`
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+--------------------------------------------------------------
-----------------------------------------------------------+
| Level | Code | Message
|
+---------+------+--------------------------------------------------------------
-----------------------------------------------------------+
| Warning | 1356 | View 'tt.v1' references invalid table(s) or column(s) or func
tion(s) or definer/invoker of view lack rights to use them |
+---------+------+--------------------------------------------------------------
-----------------------------------------------------------+
1 row in set (0.00 sec)
mysql> exit
Bye
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump -uroot -proot -P3308 --dat
abases tt
-- MySQL dump 10.11
--
-- Host: localhost Database: tt
-- ------------------------------------------------------
-- Server version 5.0.86-community-nt
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0
*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `tt`
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `tt` /*!40100 DEFAULT CHARACTER SET utf
8 */;
USE `tt`;
mysqldump: Got error: 1356: View 'tt.v1' references invalid table(s) or column(s
) or function(s) or definer/invoker of view lack rights to use them when using L
OCK TABLES
So, either this is a problem of recent mysqldump version (from 5.0.87, but I doubt that), or some problem of 5.0.45 server version. Please, check with a newer server version.
[21 Dec 2009 0:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
