解决Mysql无法启动和Navicat的1045 Access denied for user ‘root‘@‘localhost‘问题

文章讲述了用户遇到的两个MySQL问题:1)如何通过删除服务并重置my.ini配置来解决启动问题;2)在连接Nav时的访问权限问题,包括如何修改root用户的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题一、无法启动MySql

先以管理员身份打开进入安装好的Mysq的bin目录,(我自己这里找不到安装在那里,是进入环境变量查了一下path找到的)

然后输入 net start mysql

无效后 输入了mysql --install

发现我确实安装了 然后再次启动发现仍然无法启动

这是输入了mysqld --initialize-insecure

再次启动就成功了

问题2.在连接nav时,1045 Access denied for user ‘root’@‘localhost’ (using password: YES)

要在my.ini中编辑,但是我找不到我的my.ini,因此又生成my.ini,以下生成方法,

先以管理者身份进入MySQL的bin目录下输入 sc delete MySQL 先删除服务,一定是管理身份

然后配置my.ini文件,在bin的同级目录下建立my.ini,然后把这些东西输入进去,basedir和datadir是根据自己的Mysql位置的,

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = D:\MySQL
datadir = D:\MySQL\data
port = 3306
server_id = 1
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 删除原来的data文件,做好备份,然后运行mysqld --initialize-insecure --user=mysql,会生成新的data文件的

然后输入mysqld --install "MySql" --defaults-file="C:\Program Files\MySQL\MySQL Server 8.0/my.ini"

这里的MySql是自己的服务名随意定,路径就是自己刚刚建立的my.ini的路径,建立成功后就可以重新启动啦!

在bin目录启动cmd。输入下命令。

mysql -u root -p

         这时密码为空,不需要填写,直接回车:

修改密码为123456

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

然后接下来

1.进入mysql数据库:
mysql> use mysql;
Database changed

2.给root用户设置新密码:以上设置过的可以不用管
mysql> update user set password=password('新密码') where user='root';
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

(例如,update user set password=password('123456') where user='root';)
我在这里设的密码是以前正常使用时的密码

3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.退出mysql:
mysql>quit;

原文链接:https://blog.csdn.net/emdog/article/details/118019149

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值