密码出错了,
如果你要设置密码
应该用 PASSWORD('admin') 进行加密先我们应该知道MySQL数据库中的口令存储必须用Password()函数加密它。
因为在user表中是以加密形式存储口令,而不是作为纯文本。
如果你没有加密,直接在数据库中执行以下语句:USE mysql
INSERT INTO user (Host,User,Password) VALUES('%','user_name','your password');
FLUSH PRIVILEGES;
相信结果将会令你很失望。
因为服务器比较的是加密的值,所以服务器连接一定失败。
这里需要说明的是“FLUSH PRIVILEGES;”这条命令,
它起到了重新加载授权表的作用。
你也可以在shell下直接用 mysqladmin -u root reload
或者 mysqladmin -u root flush-privileges 来实现重载授权表。在MySQL环境下,你可以使用以下语句进行设置密码:
1、INSERT INTO user(Host,User,Password) VALUES('%','user_name',Password("your password");
2、SET PASSWORD FOR user_name = password("your password")
以上两种方法都必须进行重载授权表。
3、当然你也可以在创建一个用户时直接设置密码,grant语句将为你自动加密口令.
如 grant all on *.* to user_name@% identified by "your password";
4、另外你也可以在shell环境下用mysqladmin程序来设置密码
如 mysqladmin -u root password "your password"
如果你要设置密码
应该用 PASSWORD('admin') 进行加密先我们应该知道MySQL数据库中的口令存储必须用Password()函数加密它。
因为在user表中是以加密形式存储口令,而不是作为纯文本。
如果你没有加密,直接在数据库中执行以下语句:USE mysql
INSERT INTO user (Host,User,Password) VALUES('%','user_name','your password');
FLUSH PRIVILEGES;
相信结果将会令你很失望。
因为服务器比较的是加密的值,所以服务器连接一定失败。
这里需要说明的是“FLUSH PRIVILEGES;”这条命令,
它起到了重新加载授权表的作用。
你也可以在shell下直接用 mysqladmin -u root reload
或者 mysqladmin -u root flush-privileges 来实现重载授权表。在MySQL环境下,你可以使用以下语句进行设置密码:
1、INSERT INTO user(Host,User,Password) VALUES('%','user_name',Password("your password");
2、SET PASSWORD FOR user_name = password("your password")
以上两种方法都必须进行重载授权表。
3、当然你也可以在创建一个用户时直接设置密码,grant语句将为你自动加密口令.
如 grant all on *.* to user_name@% identified by "your password";
4、另外你也可以在shell环境下用mysqladmin程序来设置密码
如 mysqladmin -u root password "your password"
解决方案 »
- 本人想入手mysql,请大家推荐一下mysql 的经典书籍,谢谢!
- 关于mysql触发器的问题,急等!!!
- 急!请教个join连接查询效率的问题!
- mysql 有没有类似于oracle的comment on之类的语法?
- 怎么分组查询第N大值? (问题尚未解决)
- 再问lock table锁表问题,麻烦大家帮忙看一下~
- 一个递归查询的问题请教
- 50分求教一个触发器的简单问题,很简单的,进来看看。
- mysql 如何定时从一个库复制表到另一个库
- 有没有人帮下呀
- 求助:关于MySql如何实现与子查询相同的功能!!!
- mysql + C++builder为什么查询blob类型的字段都会报告table does not exists呢???
假设mysql安装在D:\mysql目录下,
本机IP为 192.168.0.2d:\mysql\bin>mysql -u root
mysql>use mysql
mysql>SELECT * FROM `mysql.user`;
+-----------+------+----------+------------+------------.....+------------+
| Host | User | Password |Select_priv |Insert_priv .....| ALter_priv |
+-----------+------+----------+------------+------------.....+------------+
| localhost | root | |Y |Y | Y .| Y |
| % | root | |Y |Y | Y .| Y |
| localhost | | |Y |Y | Y .| Y |
| % | | |N |N | N .| N |
+-----------+------+----------+------------+------------.....+------------+
4 rows in set (0.00 sec) mysql>DELETE FROM user WHERE Host='%' and User='';
->删除第四个用户mysql>DELETE FROM user WHERE Host='%' and User='root';
->删除第二个用户,不允许其它计算机以"root"用户名登录本机的MySQLmysql>FLUSH PRIVILEGES;
->刷新用户授权表
D:\mysql\bin>mysql -h 192.168.0.2
->ERROR 1130: Host '192.168.0.2' is not allowed to connect to this MySQL server
->Why??
->因为执行了上面三步后,mysql.user中的数据为
->+-----------+------+----------+------------+------------....-+------------+
->| Host | User | Password |Select_priv |Insert_priv .... | ALter_priv |
->+-----------+------+----------+------------+------------.....+------------+
->| localhost | root | |Y |Y | Y .| Y |
->| localhost | | |Y |Y | Y .| Y |
->+-----------+------+----------+------------+------------.....+------------+
->使用mysql -h 192.168.0.2,你与MySQL建立了一个TCP/IP连接,此时你的主机将是“192.168.0.2”
->而不在是“localhost”,而在用户授权表中,并没有指定“192.168.0.2”这个主机,所以得到错误提示
->ERROR 1130: Host '192.168.0.2' is not allowed to connect to this MySQL server
->★当在本机登录MySQL服务器时,尽量使用"localhost",这样你与MySQl的连接将不是一个TCP/IP
->有助于提高数据传送速率mysql>INSERT INTO user VALUES ('192.168.0.%',
'local','','Y','Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N');
mysql>FLUSH PRIVILEGES;
->新建一个名为“local”的用户,他可以从局域网中登录,具有
->Select、Insert、Update、Delete、Create、Drop权限
当时的 mysql.user 中还没有 Create_tmp_table_priv 等列强烈建议你使用 MySQL-Front 来学习 MySQL ,
最新版 MySQL v2.5 我已将它汉化,
如果需要,将你的 E-Mail 发消息给我
Problem connecting to DataBasemysql.user+------------+-------------+------------+------------
| Host | User | Password |
+------------+-------------+------------+------------
| php | admin | admin |Y,Y,Y,Y,Y,......
+------------+-------------+------------+------------一共有两个问题,1: Host = php
如果你的计算机名为 php 那无所谓,如果不是,建议你将 Host 设置为 localhost 或 127.0.0.12: Password = admin
这是一个非常错误的作法,
Password 字段中保存的只能是一个加密值, 它应该用 Password('exp') 来进行加密
现在建议你将这个字段值删除,操作如下:UPDATE `mysql.user` SET Host = 'localhost' ,Password = '' WHERE Host = 'php' AND User = 'admin';FLUSH PRIVILEGES;然后在你的 PHP 连接代码里<?php
$dbh = mysql_connect('localhost:3306','admin','');