| Bug #16530 | DROP PARTITION fails with OS permissions error | ||
|---|---|---|---|
| Submitted: | 16 Jan 2006 10:19 | Modified: | 8 Feb 2006 19:08 |
| Reporter: | Jon Stephens | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S2 (Serious) |
| Version: | 5.1.4-max | OS: | Windows (Windows 2000 Server) |
| Assigned to: | CPU Architecture: | Any | |
[16 Jan 2006 10:27]
Jon Stephens
Performed same test using 5.1.6-bk built 2006-01-16 on SuSE Linux 9.3, worked without issues.
[8 Feb 2006 19:08]
MySQL Verification Team
This issue isn't more repeatable with current Windows source server:
c:\mysql\bin>mysql -uroot test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.1.7-beta-nt-max-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE TABLE employees2 (
-> id INT NOT NULL,
-> fname VARCHAR(50) NOT NULL,
-> lname VARCHAR(50) NOT NULL,
-> hired DATE NOT NULL
-> )
-> PARTITION BY RANGE( YEAR(hired) ) (
-> PARTITION p1 VALUES LESS THAN (1991),
-> PARTITION p2 VALUES LESS THAN (1996),
-> PARTITION p3 VALUES LESS THAN (2001),
-> PARTITION p4 VALUES LESS THAN (2005),
-> PARTITION p5 VALUES LESS THAN MAXVALUE
-> );
Query OK, 0 rows affected (0.17 sec)
mysql> ALTER TABLE employees2 DROP PARTITION p1;
Query OK, 0 rows affected (0.09 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table employees2\G
*************************** 1. row ***************************
Table: employees2
Create Table: CREATE TABLE `employees2` (
`id` int(11) NOT NULL,
`fname` varchar(50) NOT NULL,
`lname` varchar(50) NOT NULL,
`hired` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE ( YEAR(hired)) (PARTITION p2 VALUES LESS THAN (1
996) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (2001) ENGINE = MyISAM, PARTITION p4 VALUES LESS THAN
(2005) ENGINE = MyISAM, PARTITION p5 VALUES LESS THAN MAXVALUE ENGINE = MyISAM)
1 row in set (0.01 sec)
mysql>

Description: mysql> CREATE TABLE employees2 ( -> id INT NOT NULL, -> fname VARCHAR(50) NOT NULL, -> lname VARCHAR(50) NOT NULL, -> hired DATE NOT NULL -> ) -> PARTITION BY RANGE( YEAR(hired) ) ( -> PARTITION p1 VALUES LESS THAN (1991), -> PARTITION p2 VALUES LESS THAN (1996), -> PARTITION p3 VALUES LESS THAN (2001), -> PARTITION p4 VALUES LESS THAN (2005), -> PARTITION p5 VALUES LESS THAN MAXVALUE -> ); Query OK, 0 rows affected (0.08 sec) [inserted 10,000 rows using script] mysql> SELECT COUNT(*) FROM employees2; +----------+ | COUNT(*) | +----------+ | 10000 | +----------+ 1 row in set (0.01 sec) mysql> SELECT COUNT(*) FROM employees2 WHERE YEAR(hired) < 1991; +----------+ | COUNT(*) | +----------+ | 2286 | +----------+ 1 row in set (0.03 sec) mysql> ALTER TABLE employees2 DROP PARTITION p1; ERROR 6 (HY000): Error on delete of '.\part\employees2_p1.MYI' (Errcode: 13) DB and table created by MySQL root. Table populated by script running running as MySQL root. Attempt to drop partition as MySQL root. I checked permissions on the files and all parent directories in question. Owner is Administrators. All permissions (including Delete permissions) enabled for Everyone. Server is installed in C:\mysql\bin. Data directory is M:\mydata (different disk). How to repeat: See Description. Suggested fix: Allow MySQL user with appropriate permissions on the table to delete a partition.