下载
- 官网:https://dev.mysql.com/downloads/mysql/
    
- MySQL 有企业和社区版本,非企业下载社区版:MySQL Community Server
 - 下载 zip 文档,如果对 MySQL 还不了解,直接下载 MSI,然后傻瓜式安装,先用起来
 
 
安装
菜鸟教程-MySQL安装:http://www.runoob.com/mysql/mysql-install.html
注意点:
- 初始化数据库 
mysqld --initialize --console,这个操作中会生成 MySQLroot@localhost用户的初始化密码,要记下!要记下!要记下! 
问题
- 我日…忘记把上面的初始密码给记录下来了,直接复制…复制内容被覆盖了,导致初始密码丢失
 - 旧版本可以通过 
MySQL安装目录》data目录》xxx.err文件,使用编辑器打开,查询一下初始密码。关键字:temporary password【初始密码…新版本 log 没有记录啦】 - 在 Windows 下 MySQL 8 
mysqld --skip-grant-tables无法实现免密登陆 
MySQL 免密码登陆设置密码
思路解析
- 停止当前服务
 - 设置登陆时免权限验证,并重启服务【该点是该文章要讲述的问题】
 - 修改密码
 - 去除免权限验证设置,重启服务
 
利用 init-file 参数解决
- 将下述命令保存在一文本中,例如:pwd.txt
    
ALTER USER 'root'@'localhost' IDENTIFIED BY ”; - 通过命令行方式,使用 
--init-file初始化 MySQL 服务器mysqld –init-file=d:mysqlc.txt –console 
让 skip-grant-tables 参数用起来
- Windows 下 执行:
mysqld --console --skip-grant-tables --shared-memory,然后重开一个窗口即可免密登陆,进行设置密码 - 设置密码方法:https://dev.mysql.com/doc/refman/8.0/en/set-password.html
 
- 官网对 skip-grant-tables 参数的解释:https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-grant-tables
 - 官网对 shared-memory 参数的解释: https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_shared-memory
 
可能会遇到问题
- 使用非 
ALTER方式置空密码,可能会遇到下述方式报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executin
 
- MySQL 8 废弃了 
PASSWORD()函数,因此旧版本的设置密码方式不可行了! 
问题原因:
- MySQL 5.7.4 版本之后,加了 
Password Expiration Policy机制,当密码过期时候强制要求重新设置密码后才能进行后续SQL操作 
解决方案:
- 直接设置密码或使用 
ALTER方式再次置空密码即可! 
查官网文档:https://dev.mysql.com/doc/refman/8.0/en/set-password.html,不要轻信网上博客的设置密码方式,很多都是旧版本的了,建议直接查看官网手册
- 关闭 
Password Expiration Policy机制- 方式1-修改单用户密码永不过期 
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER - 方式2-全局设置用户密码不过期
        
[mysqld] default_password_lifetime=0关于 MySQL 密码管理机制:https://dev.mysql.com/doc/refman/8.0/en/password-management.html#password-expiration-policy
 
 - 方式1-修改单用户密码永不过期 
 
 
        
         
      
                
                
                
