Bug #242 | MySQL privileges can't work normally | ||
---|---|---|---|
Submitted: | 7 Apr 2003 19:03 | Modified: | 28 Oct 2003 4:55 |
Reporter: | tony chen | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 4.1 | OS: | Windows (win98) |
Assigned to: | CPU Architecture: | Any |
[7 Apr 2003 19:03]
tony chen
[7 Apr 2003 20:13]
Mark Matthews
It appears you did an 'upgrade' install and did not run the mysql_fix_privilege_tables.sql script as instructed in the README.
[8 Apr 2003 3:02]
tony chen
I download ZIP FILES ON www.mysql.com and did a fresh install yestoday. d:\mysql\bin> mysqld-opt d:\mysql\bin> mysql --user=root -p ## mysql> use mysql; mysql> delete from user where user=''; mysql> insert into user (host,user,password) values ('%','hotel',old_password('hotel')); mysql> insert into db values ('%','hotel','hotel','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> flush privileges; mysql> create database hotel; mysql> use hotel; mysql> create table ..... mysql> \q ## I connect MYSQL SERVER using mysql-front2.5 or mysql on same machine. There are two NIC (192.168.1.1 and 192.168.12.98) on my machine. ## mysql --user=hotel -photel --host=192.168.12.98 mysql> use mysql; ok! mysql> select * from mysql; ..... ok! \q Sometime It work normally
[8 Apr 2003 5:03]
Jani Tolonen
The problem is probably related to wrong combination of username/password/hostname. A test case is needed; when available, please repost. Regards, Jani
[8 Apr 2003 6:02]
Mark Matthews
You've used the 'old_password()' function, which won't work, because 4.1 uses a new password scheme. You should also use the GRANT statement instead of manipulating the host, user and db tables when you can, because it won't make mistakes like this.
[8 Apr 2003 15:49]
Peter Zaitsev
I've tested the case and I can get access all the time. Could you please tell what do you mean by "can't get access" Any particular error message ?
[8 Apr 2003 20:05]
tony chen
ALL BINARY EXTRACT FROM "mysql-4.1.0-alpha.zip(10.7M)" mysql>update user set password=password('hotel') where user='hotel' mysql>select * from user; host user password sele_priv ...... ------------------------------------------------------------localhost root Y Y...Y % root Y Y...Y % hotel *47f1aabd26adf4ad3d8deb51c8627a5fd68e51e3104a N N ..N mysql>select * from db host db user sele_priv ....... ------------------------------------------------------------% test Y Y..Y % hotel hotel Y Y..Y #TABLE host, column_priv, table_priv are empty mysql>flush privileges; OK! mysql>\q TEST A: (correct) mysql --user=hotel -photel mysql>use mysql; ERROR 1044: access deninied for user: 'hotel@127.0.0.1' to database 'mysql' mysql>\q TEST B (incorrect?) mysql --user=hotel -photel --host=192.168.12.98 mysql> use mysql ok! mysql> select * from user .... ok! \q TEST C (incorrect?) mysql --user=hotel -photel --host=192.168.1.1 mysql> use mysql ok! mysql> select * from user .... ok! \q TEST D (incorrect?) mysql --user=hotel -photel mysql> use mysql ok! mysql> select * from user .... ok! \q Please wait for about 60 minutes OR restart mysqld TEST E: (puzzle?) mysql --user=hotel -photel mysql> use mysql ERROR 1044: access deninied for user: 'hotel@127.0.0.1' to database 'mysql' ### it is correct mysql> use hotel ERROR 1044:access deninied for user: 'hotel@127.0.0.1' to database 'hotel' ## it is incorrect?
[8 Apr 2003 20:08]
tony chen
mysql>select * from user; host user password sele_priv ...... ------------------------------------------------------------localhost root Y Y...Y % root Y Y...Y % hotel *47f1aabd26adf4ad3d8deb51c8627a5fd68e51e3104a N N ..N mysql>select * from db host db user sele_priv ....... ------------------------------------------------------------% test Y Y..Y % hotel hotel Y Y..Y #TABLE host, column_priv, table_priv are empty
[28 Oct 2003 4:55]
Sergei Golubchik
everything with the word "sometimes" and the version 4.1.0 will not apply to 4.1.1, as 4.1.1 has completely different authentication code.