连接数据库出现1045错误
代表 提示密码错误
解决方法:
1.以管理员权限进入命令行
2.进入MySQL的bin目录下
cd E:\mysql-8.0.26-winx64\mysql-8.0.26-winx64\bin
3.关闭mysqld的进程
先输入 tasklist |findstr mysqld 这行命令可以用来查看mysqld是否在运行,在运行中则可以查到它的PID
再输入 taskkill /F /PID xxxx xxxx是从前面一条命令得到的PID值
4.更改密码
1)关掉命令行
2)打开MySQL安装目录下的my.ini文件,在[mysqld]下添加 skip-grant-tables,可以跳过权限直接进入MySQL服务端,
my.ini文件内的信息
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=E:\mysql-8.0.26-winx64\mysql-8.0.26-winx64 # 设置mysql数据库的数据的存放目录 datadir=E:\mysql-8.0.26-winx64\mysql-8.0.26-winx64\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
4)重新以管理员身份打开命令行,进入MySQL的bin目录下
5)如果skip-grant-tables无法使用,可以初始化MySQL,获取初始密码
注:如果无法启动服务,就关掉MySQL的所有服务,删掉MySQL目录下的data文件,cd E:\mysql-8.0.26-winx64\mysql-8.0.26-winx64\bin 再重新进入bin目录下输入
mysqld -install 重新安装MySQL服务
初始化My SQL数据库
初始化MySQL,成功后系统会重新创建一个data文件。
mysqld --initialize --console
如果出现这样情况就是说明data已经创建过了,删了data可以重新正常运行,如果data删不了的话需要按住win+r然后输入services.msc,回车找到mysql
然后关闭它,就可以删了data了
如果运行成功的话,会在最后一行的note中看到一个root@loclhost:。。。后面的是随机初始密码,把他记下来
6)启动mysql
net start mysql
会出现服务正在启动和服务成功
7)修改mysql密码
这里有个需要注意的地方,在8.0之后的版本,修改root用户密码的命令是:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
之前的版本是:
update mysql.user set authentication_string=password("你的密码") where user="root";
标签:8.0,26,1045,数据库,mysql,密码,mysqld,MySQL,winx64 From: https://www.cnblogs.com/kuailest/p/17032626.html