#1045 无法登录 MySQL 服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#1045 无法登录 MySQL 服务器相关的知识,希望对你有一定的参考价值。

刚才进入
phpMyAdmin
把里面所有数据库都删除了 然后就自动跳出登陆了 然后我再输入密码的时候就显示#1045 无法登录 mysql 服务器 求大神 这是怎么回事 我是小白 详细说下 可以么

解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:
1、以系统管理员身份登录到系统;
2、如果MySQL服务器正在运行,停止它。
如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务
如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。
3、创建1个文本文件,并将下述命令置于单一行中:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
用任意名称保存该文件。在本例中,该文件为C:\mysql-init.txt。
4、进入DOS命令提示:开始菜单->运行-> cmd
假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。
在DOS命令提示符下,执行命令:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-init.txt。
5、停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
附:
其他方法
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
# mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>

另一个方法
Windows:

1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程
2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行
3. 运行 d:\mysql\bin\mysqld-nt --skip-grant-tables 启动mysql,关闭权限的检查
4. 运行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码
5. 重新启动mysql服务追问

额 。。。感觉不太会 我的是买的vps 需要远程连接 应该怎么弄啊

追答

…………

参考技术A 可能是密码错误,或者用户忘记密码

mysql> CREATE USER 'nonexistant'@'%' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)

修复:检查和/或重置密码:您无法从 MySQL 以纯文本格式读取用户密码,因为密码哈希用于身份验证,但您可以将哈希字符串与“PASSWORD”函数进行比较。
我们可以看到 PASSWORD('forgotten')哈希与 authentication_string 列不匹配,这意味着 password string ='forgotten' 不是正确的登录密码。如果您需要覆盖密码,可以执行以下查询:
mysql> set password for 'nonexistant'@'%' = 'hello$!world';Empty set (0.00 sec)
参考技术B 这个提示是指(用户名,密码)错,找到正确的用户名密码就行了

#2002 无法登录 MySQL 服务器

phpMyAdmin竟然无法登录了,输入用户名和密码后点击“执行”后一直报 “#2002 无法登录 MySQL 服务器”。

后来终于找到了一个解决办法,将 “phpMyAdmin/libraries”文件夹下的config.default.php文件中的

$cfg[‘Servers‘][$i][‘host‘] = ‘localhost‘;

修改为

$cfg[‘Servers‘][$i][‘host‘] = ‘127.0.0.1‘;

就解决了。

一个MySQL客户可以两种不同的方式连接mysqld服务器:Unix套接字,它通过在文件系统中的一个文件(缺省“/tmp/mysqld.sock”)进行连接;或TCP/IP,它通过一个端口号连接。Unix套接字比TCP/IP更快,但是只有用在连接同一台计算机上的服务器。如果你不指定主机名或如果你指定特殊的主机名localhost,使用Unix套接字。 
错误(2002)Can‘t connect to ...通常意味着没有一个MySQL服务器运行在系统上或当试图连接mysqld服务器时,你正在使用一个错误的套接字文件或TCP/IP端口。   
由检查(使用ps)在你的服务器上有一个名为mysqld的进程启动!如果没有任何mysqld过程,你应该启动一个。

以上是关于#1045 无法登录 MySQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

#1045 无法登录 MySQL 服务器

#1045 无法登录 MySQL 服务器

错误 # 1045 - 无法登录 MySQL 服务器 -> phpmyadmin

配置中定义的 controluser 连接失败。 #1045 无法登录 MySQL 服务器

#1045 无法从 phpMyAdmin 和命令行登录到 MySql 服务器

phpmyadmin #1045 无法登录 MySQL 服务器。安装mysql命令行客户端后