• 安装mysql8.0.11以及修改root密码、连接navicat for mysql。


      最近在学习node.js,少不得要跟数据库打交道,于是打算安装一个数据库软件,在mongedb和mysql之间选择了mysql。作为一个数据库新人不敢评论孰好孰坏,最后选择mysql纯属因为公司在用mysql,而且有个数据库大神可以指导学习。按照网上的教程,可能是新版本的原因,关于root密码重置总是有一些问题,所以结合自己的安装过程就有了此篇博客,好了,废话不多说,下面进入正题。

    1.1. 下载:

    官网下载zip包,我下载的是64位的:

    下载地址:https://dev.mysql.com/downloads/mysql/

    下载zip的包:

    下载后解压:(解压在哪个盘都可以的)

    我放在了这里 E:webmysql-8.0.11-winx64 ,顺便缩短了文件名,所以为 E:webmysql-8.0.11。

    1.2. 配置环境变量:

    进入 计算机--高级系统设置--高级--环境变量

    然后新建系统变量

    变量值改为自己mysql解压的路径

    变量名:MYSQL_HOME

    变量值:E:webmysql-8.0.11

    path里添加:%MYSQL_HOME%in;(分号不要忘记)

    1.3. 生成data文件:

    以管理员身份运行cmd

    程序--输入cmd 找到cmd.exe 右键以管理员身份运行

    进入E:webmysql-8.0.11in 下

    执行命令:mysqld --initialize-insecure --user=mysql  在E:webmysql-8.0.11目录下生成data目录

    1.4. 启动服务:

    执行命令:net start mysql  启动mysql服务,若提示:服务名无效...(请看步骤:1.5);

    1.5. 解决启动服务失败(报错

    提示:服务名无效

    解决方法:

    执行命令:mysqld -install  即可(不需要my.ini配置文件 注意:网上写的很多需要my.ini配置文件,其实不需要my.ini配置文件也可以,我之前放置了my.ini文件,反而提示服务无法启动,把my.ini删除后启动成功了)

    若出现提示“服务正在启动或停止中,请稍后片刻后再重试一次”,需要去资源管理器中把mysql进程全结束了,重新启动即可。

    1.6. 登录mysql:

    登录mysql:(因为之前没设置密码,所以密码为空,不用输入密码,直接回车即可)

    E:mysql-5.7.20-winx64in>mysql -u root -p  

    Enter password: 

    1.7. 查询用户密码:

    查询用户密码命令:mysql> select host,user,authentication_string from mysql.user;

    host: 允许用户登录的ip‘位置’%表示可以远程;

    user:当前数据库的用户名;

    authentication_string: 用户密码(后面有提到此字段);

    1.8. 设置(或修改)root用户密码:

    默认root密码为空的话 ,下面使用navicat就无法连接,所以我们需要修改root的密码。

    这是很关键的一步。此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

    下面直接演示正确修改root密码的步骤:

      一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。

      1. use mysql;  
      2. update user set authentication_string=''  where user='root'
      3. 下面直接演示正确修改root密码的步骤:

      二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:

      1. ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'

      此处有两点需要注意:1、不需要flush privileges来刷新权限。2、密码要包含大写字母,小写字母,数字,特殊符号。

      修改成功; 重新使用用户名密码登录即可;

    注意: 一定不要采取如下形式该密码:

    1. use mysql;  
    2. update user set authentication_string="newpassword" where user="root";  

    这样会给user表中root用户的authentication_string字段下设置了newpassword值;

    当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

    因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

    *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

    至此,安装mysql和修改root密码告一段落。开始navicat for mysql篇。

    时间有限,navicat的下载和破解注册就不多讲了 有需要的下面留邮箱,发给你们,下面说说出问题的地方。

    账号密码都正确,连接报错1251。OK 我们先来看看这个改动:

    在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

    so,我们这里需要再次修改一次root密码。

    先登录进入mysql环境:执行下面三个命令。(记得带上分号)

    1、use mysql;

    2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

    3、FLUSH PRIVILEGES;

    OK.现在再去重连。perfect!

    折腾了这么久,总算可以开始我的SQL之路了,撒花!撒花!撒花!

    本来准备好的有截图说明,发现插入图片失败,就先这样吧。

    大家有问题的可以下面交流,跪求各位数据库大神多多照顾,手下留情。

  • 相关阅读:
    图解JavaScript原型和原型链
    hash数组快速查找一个字符串中出现最多的字符,并统计出现的次数
    JS中数组和字符串的方法大全
    用js实现排列组合
    js中一个对象当做参数传递时候?
    用JavaScript按一定格式解析出URL 串中所有的参数
    从Object.definedProperty中看vue的双向数据的绑定
    Uncaught (in promise) TypeError:的错误
    vue之生命周期的一点总结
    原子性和原子性操作
  • 原文地址:https://www.cnblogs.com/kawask/p/9171966.html
Copyright © 2020-2023  润新知