WAMP Mysql - [1045] 用户访问被拒绝
WAMP Mysql - [1045] access denied for user
首先,我想说的是,我完全不熟悉 client/server 体系结构,是使用命令行的初学者,之前从未修复过程序。我下载了 MySql 5.6 for Windows 7 64 位以及 MySql workbench.
所以一开始一切都很好,包括登录、数据库工作、sql 查询等。接下来我想做的是使用 php 从网页访问我的数据库。所以我安装了 Wampserver(其中包括 Apache、phpmyadmin,我想 Api 用于将 mysql 与 php 一起使用?)然后我无法进入我的服务器。
但是,这可能不是因为安装了 Wampserver,因为我没有检查它是否在安装后立即工作。我所做的是,在安装 Wampserver 之后,我将 root 密码从 Mysqlworkbench 更改为我可以使用的密码。所以,一定是我无法连接到服务器,因为 (a) 我从 workbench 更改了 root 登录密码,或者 (b) 我安装了 Wampserver。几个小时以来,我一直在尝试不同的事情来解决这个问题,我认为问题可能出在文件上。据我了解,如果您想登录服务器,它首先会通过将您的信息与另一个文件进行比较来验证您的信息?我想我提到的 my.ini 文件可能有问题。
这通常是我尝试连接时发生的情况
owner>mysql -u root -p
Enter password: ********
Error 1045 (28000): Access denied for user 'root'@'localhost' (using password:YES)
我将列出一些我已经尝试过的东西。一件事是我可能需要重置密码,但我已经尝试使用命令行使用
所有者>mysql> 为 'root'@'localhost' 设置密码 = 密码('pass123');刷新权限;
顺便说一句,我不确定您是否应该手动输入“>”,因为我必须在 mysql 之后输入“>”符号才能使更改密码语句生效。
我在 mysql 服务开启的情况下试过了。然后我再次尝试关闭 mysql 服务,但仍然给出相同的错误,即访问被拒绝。
所以我在谷歌搜索后尝试了另一个建议。我关闭了 mysql 服务,转到 Workbench,单击我的根实例,然后进入数据库。然后它告诉我尝试从那里启动服务器,所以我这样做并启动,但随后提示我输入密码。来自 workbench 的消息日志是:
2016-04-15 18:20:46 - Workbench will use cmd shell commands to start/stop this instance
2016-04-15 18:20:50 - Starting server...
FROM OWNER-PC.err:
2016-04-15 18:20:52 51636 Note Plugin 'FEDERATED' is disabled.
2016-04-15 18:20:52 c84c InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2016-04-15 18:20:52 51636 Note InnoDB: Using atomics to ref count buffer pool pages
2016-04-15 18:20:52 51636 Note InnoDB: The InnoDB memory heap is disabled
2016-04-15 18:20:52 51636 Note InnoDB: Mutexes and rw_locks use Windows interlocked functions
2016-04-15 18:20:52 51636 Note InnoDB: Memory barrier is not used
2016-04-15 18:20:52 51636 Note InnoDB: Compressed tables use zlib 1.2.3
2016-04-15 18:20:52 51636 Note InnoDB: Not using CPU crc32 instructions
2016-04-15 18:20:52 51636 Note InnoDB: Initializing buffer pool, size = 269.0M
2016-04-15 18:20:52 51636 Note InnoDB: Completed initialization of buffer pool
2016-04-15 18:20:52 51636 Note InnoDB: Highest supported file format is Barracuda.
2016-04-15 18:20:52 51636 Note InnoDB: 128 rollback segment(s) are active.
2016-04-15 18:20:52 51636 Note InnoDB: Waiting for purge to start
2016-04-15 18:20:52 51636 Note InnoDB: 5.6.28 started; log sequence number 10175537
2016-04-15 18:20:52 51636 Note Server hostname (bind-address): '*'; port: 3306
2016-04-15 18:20:52 51636 Note IPv6 is available.
2016-04-15 18:20:52 51636 Note - '::' resolves to '::';
2016-04-15 18:20:52 51636 Note Server socket created on IP: '::'.
2016-04-15 18:20:52 51636 Note Event Scheduler: Loaded 0 events
2016-04-15 18:20:52 51636 Note C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: ready for connections.
Version: '5.6.28-log' socket: '' port: 3306 MySQL Community Server (GPL)
2016-04-15 18:21:14 - Server start done.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我认为从 workbench 启动服务器的目的是为了让我能够访问用户和权限,但我说如果没有连接到服务器我就无法做到这一点。所以,我不知所措可能很简单,也许我更改密码的语法是错误的,也许文件搞砸了,也许 wampserver 改变了一些东西。
值得注意的是,wampserver 文件 C:\wamp\bin\mysql\mysql5.6.17\bin
中有很多与 C:\Program Files\MySQL\MySQL Server 5.6\bin
中相同的 .exe 文件
所以我在谷歌上四处搜索,但我尝试过的都没有奏效。所以我上了 Youtube,在那里我找到了答案。我会 post 和 link 在这里 Youtube password video 因为它比仅仅解释更容易,尽管我会给出一个简短的总结。它是通过命令行完成的,并制作了一个名为 "mysql-init.txt" 的 .txt 文件。所以我必须制作一个 .txt 文件,其中包含使用 mysql 和更新 mysql.user table 的命令,并更新密码,然后刷新权限。然后不得不关闭 mysql 服务器服务。之后,我将 "my.ini" 文件移动到 mysql 服务器的文件夹中(对我来说是 "MySQL Server 5.6")。然后,使用命令提示符进入 mysql 服务器目录。然后我这样做了:
C:\Program Files\MySQL\MySQL Server 5.6>bin\mysqld.exe --defaults-file="my.ini" --init-file="C:\Users\Johnny\Desktop\mysql-init.txt" --console
之后,我刚刚重启了mysql服务器服务,新密码就生效了。
我使用的是 windows 7,其他操作系统可能有所不同。不过,关于视频有几点需要注意。他使用的是不同版本的 Mysql,因此他的 mysql 服务器的服务名称只是 mysql,但对于安装了 mysql 5.6 的我来说,服务是 mysql56。此外,在视频中,他的服务器目录中有 "my.ini",但对我来说,它不在那里。阅读评论后,"my.ini" 文件位于隐藏文件夹中,因此我取消隐藏文件夹(非常简单)并找到 "my.ini" 并将其放入 "MySQL Server 5.6" 文件夹中。
此外,在视频中,他键入了一个非常偷偷摸摸的 space,如果他们不密切注意,这会给一些人带来麻烦。它是: --defaults-file="my.ini"SPACE--init-file="......" 另一件事,确保你在实际目录中,因为即使如果你在系统路径上有 mysqld.exe,它对我不起作用,我必须在视频中的实际目录中。
首先,我想说的是,我完全不熟悉 client/server 体系结构,是使用命令行的初学者,之前从未修复过程序。我下载了 MySql 5.6 for Windows 7 64 位以及 MySql workbench.
所以一开始一切都很好,包括登录、数据库工作、sql 查询等。接下来我想做的是使用 php 从网页访问我的数据库。所以我安装了 Wampserver(其中包括 Apache、phpmyadmin,我想 Api 用于将 mysql 与 php 一起使用?)然后我无法进入我的服务器。
但是,这可能不是因为安装了 Wampserver,因为我没有检查它是否在安装后立即工作。我所做的是,在安装 Wampserver 之后,我将 root 密码从 Mysqlworkbench 更改为我可以使用的密码。所以,一定是我无法连接到服务器,因为 (a) 我从 workbench 更改了 root 登录密码,或者 (b) 我安装了 Wampserver。几个小时以来,我一直在尝试不同的事情来解决这个问题,我认为问题可能出在文件上。据我了解,如果您想登录服务器,它首先会通过将您的信息与另一个文件进行比较来验证您的信息?我想我提到的 my.ini 文件可能有问题。
这通常是我尝试连接时发生的情况
owner>mysql -u root -p
Enter password: ********
Error 1045 (28000): Access denied for user 'root'@'localhost' (using password:YES)
我将列出一些我已经尝试过的东西。一件事是我可能需要重置密码,但我已经尝试使用命令行使用
所有者>mysql> 为 'root'@'localhost' 设置密码 = 密码('pass123');刷新权限;
顺便说一句,我不确定您是否应该手动输入“>”,因为我必须在 mysql 之后输入“>”符号才能使更改密码语句生效。
我在 mysql 服务开启的情况下试过了。然后我再次尝试关闭 mysql 服务,但仍然给出相同的错误,即访问被拒绝。
所以我在谷歌搜索后尝试了另一个建议。我关闭了 mysql 服务,转到 Workbench,单击我的根实例,然后进入数据库。然后它告诉我尝试从那里启动服务器,所以我这样做并启动,但随后提示我输入密码。来自 workbench 的消息日志是:
2016-04-15 18:20:46 - Workbench will use cmd shell commands to start/stop this instance
2016-04-15 18:20:50 - Starting server...FROM OWNER-PC.err:
2016-04-15 18:20:52 51636 Note Plugin 'FEDERATED' is disabled. 2016-04-15 18:20:52 c84c InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator. 2016-04-15 18:20:52 51636 Note InnoDB: Using atomics to ref count buffer pool pages 2016-04-15 18:20:52 51636 Note InnoDB: The InnoDB memory heap is disabled 2016-04-15 18:20:52 51636 Note InnoDB: Mutexes and rw_locks use Windows interlocked functions 2016-04-15 18:20:52 51636 Note InnoDB: Memory barrier is not used 2016-04-15 18:20:52 51636 Note InnoDB: Compressed tables use zlib 1.2.3 2016-04-15 18:20:52 51636 Note InnoDB: Not using CPU crc32 instructions 2016-04-15 18:20:52 51636 Note InnoDB: Initializing buffer pool, size = 269.0M 2016-04-15 18:20:52 51636 Note InnoDB: Completed initialization of buffer pool 2016-04-15 18:20:52 51636 Note InnoDB: Highest supported file format is Barracuda. 2016-04-15 18:20:52 51636 Note InnoDB: 128 rollback segment(s) are active. 2016-04-15 18:20:52 51636 Note InnoDB: Waiting for purge to start 2016-04-15 18:20:52 51636 Note InnoDB: 5.6.28 started; log sequence number 10175537 2016-04-15 18:20:52 51636 Note Server hostname (bind-address): '*'; port: 3306 2016-04-15 18:20:52 51636 Note IPv6 is available. 2016-04-15 18:20:52 51636 Note - '::' resolves to '::'; 2016-04-15 18:20:52 51636 Note Server socket created on IP: '::'. 2016-04-15 18:20:52 51636 Note Event Scheduler: Loaded 0 events 2016-04-15 18:20:52 51636 Note C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe: ready for connections. Version: '5.6.28-log' socket: '' port: 3306 MySQL Community Server (GPL) 2016-04-15 18:21:14 - Server start done. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我认为从 workbench 启动服务器的目的是为了让我能够访问用户和权限,但我说如果没有连接到服务器我就无法做到这一点。所以,我不知所措可能很简单,也许我更改密码的语法是错误的,也许文件搞砸了,也许 wampserver 改变了一些东西。
值得注意的是,wampserver 文件 C:\wamp\bin\mysql\mysql5.6.17\bin
中有很多与 C:\Program Files\MySQL\MySQL Server 5.6\bin
所以我在谷歌上四处搜索,但我尝试过的都没有奏效。所以我上了 Youtube,在那里我找到了答案。我会 post 和 link 在这里 Youtube password video 因为它比仅仅解释更容易,尽管我会给出一个简短的总结。它是通过命令行完成的,并制作了一个名为 "mysql-init.txt" 的 .txt 文件。所以我必须制作一个 .txt 文件,其中包含使用 mysql 和更新 mysql.user table 的命令,并更新密码,然后刷新权限。然后不得不关闭 mysql 服务器服务。之后,我将 "my.ini" 文件移动到 mysql 服务器的文件夹中(对我来说是 "MySQL Server 5.6")。然后,使用命令提示符进入 mysql 服务器目录。然后我这样做了:
C:\Program Files\MySQL\MySQL Server 5.6>bin\mysqld.exe --defaults-file="my.ini" --init-file="C:\Users\Johnny\Desktop\mysql-init.txt" --console
之后,我刚刚重启了mysql服务器服务,新密码就生效了。
我使用的是 windows 7,其他操作系统可能有所不同。不过,关于视频有几点需要注意。他使用的是不同版本的 Mysql,因此他的 mysql 服务器的服务名称只是 mysql,但对于安装了 mysql 5.6 的我来说,服务是 mysql56。此外,在视频中,他的服务器目录中有 "my.ini",但对我来说,它不在那里。阅读评论后,"my.ini" 文件位于隐藏文件夹中,因此我取消隐藏文件夹(非常简单)并找到 "my.ini" 并将其放入 "MySQL Server 5.6" 文件夹中。 此外,在视频中,他键入了一个非常偷偷摸摸的 space,如果他们不密切注意,这会给一些人带来麻烦。它是: --defaults-file="my.ini"SPACE--init-file="......" 另一件事,确保你在实际目录中,因为即使如果你在系统路径上有 mysqld.exe,它对我不起作用,我必须在视频中的实际目录中。