windows下mysql提示access denied for user ''@'localhost' to database解决方案

来源:互联网 发布:单页seo怎么赚钱 编辑:程序博客网 时间:2024/05/21 04:17

用root帐号连上mysql,语句为“mysql -u root”即可,然后创建一个数据库,提示如下错误:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mydb'

原因是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的”@’localhost’可以看出来。

由于网上大多是linux下解决方案,但是在windows下输入命令却有不同,经过在网上查找试验,终于找到一个比较有效的方法,现整理如下:

1、cmd下cd到mysql的bin目录

输入mysqld --defaults-file="D:\Program Files\MySQL\MySQL Server 5.6\my-default.ini" --console --skip-grant-tables

看到下面这个结果就说明MySQL已经起来了:

2014-08-29 10:40:48 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use2014-08-29 10:40:48 8108 [Note] Plugin 'FEDERATED' is disabled.2014-08-29 10:40:48 8108 [Note] InnoDB: Using atomics to ref count buffer pool pages2014-08-29 10:40:48 8108 [Note] InnoDB: The InnoDB memory heap is disabled2014-08-29 10:40:48 8108 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions2014-08-29 10:40:48 8108 [Note] InnoDB: Memory barrier is not used2014-08-29 10:40:48 8108 [Note] InnoDB: Compressed tables use zlib 1.2.32014-08-29 10:40:48 8108 [Note] InnoDB: Not using CPU crc32 instructions2014-08-29 10:40:48 8108 [Note] InnoDB: Initializing buffer pool, size = 128.0M2014-08-29 10:40:48 8108 [Note] InnoDB: Completed initialization of buffer pool2014-08-29 10:40:48 8108 [Note] InnoDB: Highest supported file format is Barracuda.2014-08-29 10:40:57 8108 [Note] InnoDB: 128 rollback segment(s) are active.2014-08-29 10:40:57 8108 [Note] InnoDB: Waiting for purge to start2014-08-29 10:40:57 8108 [Note] InnoDB: 5.6.20 started; log sequence number 16259972014-08-29 10:40:57 8108 [Note] Server hostname (bind-address): '*'; port: 33062014-08-29 10:40:57 8108 [Note] IPv6 is available.2014-08-29 10:40:57 8108 [Note]   - '::' resolves to '::';2014-08-29 10:40:57 8108 [Note] Server socket created on IP: '::'.2014-08-29 10:40:58 8108 [Note] mysqld: ready for connections.Version: '5.6.20'  socket: ''  port: 3306  MySQL Community Server (GPL)

2、再开一个dos窗口,cd到mysql bin目录下,输入mysql -u root mysql

出现下面这个结果说明已连接上mysql数据库,可以输入mysql命令了:

Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.20 MySQL Community Server (GPL)mysql>

3、设置密码

mysql> update user set password=PASSWORD('password') where user='root';Query OK, 2 rows affected (0.02 sec)Rows matched: 3  Changed: 2  Warnings: 0mysql> FLUSH PRIVILEGES; mysql> quit 

之后按正常方法连接mysql就可以了。如果不能连接,查看下mysql服务是否启动。

0 0
原创粉丝点击