一、 以管理员身份运行cmd,进入mysql的bin目录 执行以下代码。
#初始化数据库 mysqld --initialize #初始化不会显示密码
mysqld --initialize --console #初始化显示密码
mysqld --initialize-insecure #初始化没有密码 默认为空
#安装windows服务 mysqld -install MySQL
#移除windows服务
mysqld --remove MySQL57
二、my.ini 5.7以上的版本没有此文件,则自己创建
# 设置客户端配置信息 [client] # 设置客户端端口号 port=3306 #绑定IPv4和3306端口 bind-address = 0.0.0.0 # 设置客户端默认字符集 default-character-set=utf8 # 设置服务器端配置信息 [mysqld] #设置3306端口 port=3306 # 设置mysql的安装目录 basedir="D:\Program Files\mysql" # 设置mysql数据库的数据的存放目录 datadir="D:\Program Files\mysql\data" # 设置服务器默认字符集 character-set-server=utf8 # 允许最大连接数 max_connections=200 # 支持的sql语法,数据校验 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
注意:这里保存时编码为ansi,否则会报如下错误:error: Found option without preceding group in config file:
特别说明.ini文件是window里面的配置文件。保存里面各种默认的数据。
安装版的是在安装的时候让你自己选然后系统给你保存进来,zip archive是自己写,都一样。
三、使用navicat连接修改密码
1.我这里初始化的时候密码为空
2.使用命令
update user set password=password("123") where user="root"; 或
UPDATE user SET `authentication_string`=PASSWORD('root') where `USER`='root';(报错password字段不存在的时候使用它)
四、忘记密码后强制修改密码
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
注意:假如有错误提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',这表示没有找到password字段,记得把password改为authentication_string即可。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
更多详细参考:https://blog.csdn.net/weixin_42831477/article/details/81413510