navicat连接数据库报1045的错误,百度了各种方法后记录亲测成功的方法以便日后再遇到相同问题可以快速解决

 连接数据库时报错如图

解决步骤:

1、在mysql的安装目录找到my.ini文件,如果没有可以自己手动添加一个文本文档,修改内容即可,内容如下:

[mysqld]
skip-grant-tables
character-set-server=utf8
#绑定IPv4(需要修改成自己机器的ipv4地址)和3306端口
bind-address = xxx.xxx.xx.xx
port = 3306
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=1000M
innodb_log_file_size=50M
# 设置mysql的安装目录(需要修改成自己电脑mysql的安装目录)
basedir=C:Program FilesMySQLMySQL Server 5.7
# 设置mysql数据库的数据的存放目录(需要修改成自己电脑mysql的data的目录)
datadir=C:Program FilesMySQLMySQL Server 5.7data
# 允许最大连接数
max_connections=200
# skip_grant_tables
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
[client]
port = 3306

# 设置mysql数据库的插件的存放目录(需要修改成自己电脑mysql的plugin的目录)
plugin-dir=C:Program FilesMySQLMySQL Server 5.7libplugin

2、修改完成保存后,可以重新启动一下mysql的服务

Windows+R,输入:services.msc,然后回车,找到服务,查找mysql的服务然后重启

 3、windows+R,输入cmd进入命令行

进入mysql的安装目录

 然后输入:

mysql -u root -p(亲测如果是mysql -u root mysql会继续报错),回车后需要输入密码,输入安装时设置的密码回车

然后命令修改密码就好了:

use mysql;

update user set authentication_string=password('123') where user='root';

然后刷新

flush privileges;

然后退出

quit;

然后使用root和123就可以登录成功了(前提是服务都是启动的状态)

最后记录一下我愚蠢的经历,一直连接不上数据库是因为把数据库地址填写到了数据库名称的框里,然后一直没发现(蠢哭)

原文地址:https://www.cnblogs.com/duhongjin/p/14447089.html