1.mysqld.exe -install能够正常安装mysql服务
2.net start mysql也能正常启动mysql服务
3.问题来了,我用mysql命令行连接,结果就是输入密码后马上消失
4.我用cmd登入,没有输入密码就直接进入了,但是结果找不到mysql和test数据库,只看到shema:
5.我关了服务,使用--skip-grant-tables命令开启,在另一个cmd下进入mysql,这个时候却能找到mysql数据库,这是怎么回事?
在线等答案啊,求大神指点,我的目标是正常的登入,输入命令,看到test和mysql数据库就ok了。

解决方案 »

  1.   

    你的mysql.user表里面应该有一个匿名用户(用户名字段是空串) 登录的时候你使用的就是这个用户 但是这个用户可能什么权限也没有(连查看有几个数据库的权限都没有) 所以造成了这种情况
    解决办法很简单 进入这个表里删除这个用户记录 然后执行(flush privileges;)或者重启数据库服务 然后登陆的时候使用:
    mysql -u root -p
    输入root用户的密码 就可以啦
      

  2.   

    如果你不知道root用户的密码 就用update语句更新mysql.user表的密码字段:
    update mysql.user set password=password('sdfasdfnn') where user='root';
    flush privileges;
    这样你就可以用'sdfasdfnn'作为密码登陆了
      

  3.   

    show grants ;看一下以什么身份登录的。两个应该是不同的用户。
      

  4.   

    select user();看看以什么用户登录的
      

  5.   

    数据库安装后默认有个空用户空密码的账户存在,你输入mysql 回车后进入的就是这个账户,看不到test和mysql是因为这个账户没有权限。
      

  6.   

    你的主配置文件中加了这么一行应该是user=mysql
    把这行干掉