这是MySQL8.0一个登陆验证的问题。mysql
第一步 初始化配置sql
若是已经初始化了,就直接跳过第一步数据库
你须要知道的是:MySQL安装的路径。个人路径是:G:\mysql-8.0.11-winx64加密
在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行,并切换到mysql-8.0.11-winx64中。.net
输入命令初始化data目录:插件
mysqld --initialize --console 会出现一段内容,找到内容中root@localhost: 它后面就是登陆数据库的初始密码,必定要记下来get
再输入命令初始化mysql服务cmd
mysqld --install 而后输入命令启动mysqlit
net start mysql 若是已经启动了,他会提示你服务已经启动。io
若是提示拒绝访问,那你确定没有以管理员身份运行cmd。在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行。继续上步操做。
接下来,登陆到数据库
mysql -u root -p 密码:输入就是刚才记下来的,
登录成功后接着更改密码,输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
这以上只是确保不会出现其余的问题,还不能解决密码验证的问题。
第二步 修改MySQL的登陆验证配置
cmd链接mysql
mysql -u root -p 修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 刷新权限
FLUSH PRIVILEGES; 重置下密码(123456789这里是你要设置的密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456789'; 完成之后,试着从新链接mysql数据库,若是尚未成功,继续往下走:
第三步 根目录增长配置文件
在mysql-8.0.11-winx64这个目录下,新建my.ini文件,文件内容以下,记得保存:
[mysqld]
default_authentication_plugin=mysql_native_password [mysql]
default-character-set=utf8 [client]
port=3306 default-character-set=utf8
default_authentication_plugin=mysql_native_password [mysql]
default-character-set=utf8 [client]
port=3306 default-character-set=utf8 接下来须要重启mysql服务。
先中止mysql服务,
net stop mysql 若是提示拒绝访问,那你确定没有以管理员身份运行cmd。在C:\Windows\System32路径下找到cmd.exe,右键以管理员身份运行。继续上步操做。
已中止成功后,继续输入命令启动mysql
net start mysql 查看是否是能够正常启动
若是没法启动,就是那个my.ini文件的问题,尝试只保留文件中的一部分
[mysqld]
default_authentication_plugin=mysql_native_password 继续启动mysql。
启动成功后,就说明修改配置文件成功,尝试去链接数据库,应该就成功了