MySQL1045错误解决方法(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes))

MySQL1045错误解决方法(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes))
登录数据库时,发现数据库连接不上,报错如下:
在这里插入图片描述
解决办法
首先,停止MySQL服务

service mysqld stop

修改mysql数据库密码
修改MySQL的登录设置:

vim /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存并且退出vi。
在这里插入图片描述
3.重新启动mysqld
service mysqld restart 或者 service mysql restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
或者出现:
Redirecting to /bin/systemctl restart mysqld.service
在这里插入图片描述
4.登录并修改MySQL的root密码
mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> USE mysql ;
Database changed

mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE User='root';

(注意括号里单引号内的就是你要重新设置的密码)
Query OK, 0 rows affected (0.00 sec)
Rows matched: 5 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
在这里插入图片描述

5.将MySQL的登录设置修改回来
vim /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除
保存并且退出vim
6.重新启动mysqld
service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
或:
Redirecting to /bin/systemctl restart mysqld.service
7.检测新密码是否生效
输入mysql -u root -p 回车
然后输入新密码,回车,如下图修改成功
在这里插入图片描述

数据库远程连接出现Host is not allowed to connect to this MySQL server解决方法

先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:
1.在装有MySQL的机器上登录MySQL mysql -u root -p密码
2.执行use mysql;
3.执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。
4.执行FLUSH PRIVILEGES;
5.经过上面4步,就可以解决这个问题了。
注: 第四步是刷新MySQL的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因。

linux服务器安装Mysql后,只能看到information_schema/test这两个库,无法修改密码

打开一个ssh连接,登录到mysql数据库
直接用命令mysql,进入数据库
修改mysql.user表

use mysql;

delete from user;
运行下面的

INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv, Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections, plugin, authentication_string) VALUES
("%","root","","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","","","","",0,0,0,0,"",""),
("localhost","","","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","","","","",0,0,0,0,"","");

授权
grant all privileges on *.* to 'root' @'localhost' identified by 'root';
刷新
flush privileges;
4.重启mysql: service mysqld restart 或者 service mysql restart

启动后登录mysql数据库,可以正常看到所有的数据库了。

2003-can’t connect to mysql server on '服务器’
grant all privileges on *.* to 'root' @'localhost' identified by 'root';
flush privileges;
授权
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
在登录mysql数据库时报错为如下所示:

 # mysql -uroot -p

Enter password:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/application/mysql5.1.72/tmp/mysql.sock‘ (2)

#查看my.cnf关于socket的配置

# more /etc/my.cnf |grep sock

socket =/tmp/mysql.sock

#由上可知my.cnf中定义的为/tmp目录下,而错误提示为/tmp/mysql.sock目录下
#也就是说mysqld已经声称了正确的sock文件,但客户端连接还是从初始目录去找sock文件
解决方法

先停止mysql服务器

# /etc/init.d/mysqld stop

Shutting down MySQL.[ OK ]
#修改my.cnf,如下

# vi /etc/my.cnf
[mysql]
no-auto-rehash
socket = /tmp/mysql.sock  #添加该行

#重启mysql服务器

# service mysqld start

Starting MySQL…[ OK ]
#再次连接正常

# mysql -uroot -p
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值