遇到点麻烦,虽然没有解决,但是算提醒大家了。
今天用Grant创建用户名是"DanielW",后来登录死活密码不对,重新创建一次,用户名是"[email protected]",也就是说加上了主机名,flush privileges后退出再登录,成功!
后来研究了一下,发现用"DanielW"创建用户host储存的是%,而"[email protected]"在user里面储存的是DanielW,host里面储存的是localhost,这也就是为什么登陆不了,因为在登录mysql -u root -p里面默认的-h是localhost,而用用户名"DanielW"创建时是通配符%,这个是mysql不能识别的~怎么登录这个%还没有研究明白,个人之见,希望指教指教~
=========================================
看mysql参考手册,发现其中增加用户部分有这么一段话:
其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。
所以%在本机是无法登陆的(明天再试试远程登录~)