数据库之MySQL5.7.20安装及乱码问题

来源:互联网 发布:小米软件大全下载 编辑:程序博客网 时间:2024/05/18 21:09

硬件条件

  • Window 10 X64
  • MySQL5.7.20 ZIP压缩版

安装步骤

  • MySQL官网下载ZIP mysql-5.7.20-winx64版本(本人目前下载的最新稳定版本)

https://dev.mysql.com/downloads/mysql/ 或直接百度 MySQL

  • 解压压缩包到自己的目录,本人是D:\MySQL\mysql-5.7.20-winx64为MySQl的环境变量
  • 修改自己的环境变量(以下截图是WIN10系统的截图,如果有差异,请参考其他系统的配置)
    这里写图片描述
    这里写图片描述
  • 创建my.ini文件,linux是my.cnf.并放到环境变量的路径,即bin目录的上一级,即D:\MySQL\mysql-5.7.20-winx64
    [client]

    default-character-set=utf8

    [mysql]

    #设置mysql客户端默认字符集

    default-character-set=utf8

    [mysqld]
    #设置3306端口
    port = 3306
    #设置mysql的安装目录
    basedir=D:\MySQL\mysql-5.7.20-winx64
    #设置mysql数据库的数据的存放目录
    datadir=D:\MySQL\mysql-5.7.20-winx64\data
    #允许最大连接数
    max_connections=200
    #服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB


记住 :一定要先把编码character配置好,否则安装完后在去添加character相关的配置,不一定生效,这个问题卡了我很久,不管怎么设置,show variables like ‘char%’的结果集server和database始终都是latin字符集。还有my.ini虽然可以放到bin下面,但要手动创建data目录,然后也可以安装mysql,但也不知道是不是这个原因,导致后面去修改my.ini文件的配置无法生效。所以网上之前的一篇错误文章,可能会扩散很大,所以亲自下手才是真理。
  • WIN+X,选择命令提示符(管理员),一定要管理员模式,然后在命令行里分别执行
    cd /d D:\MySQL\mysql-5.7.20-winx64\bin
    mysqld – initialize-inscure –user=mysql
    执行完后,D:\MySQL\mysql-5.7.20-winx64目录就会创建一个data目录。
    如果不行,直接在bin目录下执行mysql_secure_installation.exe便可,其实这种更方便。
  • 执行 mysqld -install 如果出现Service successfully installed 说明注册成功了
  • net start mysql 启动服务就可以了。( net stop mysql停止服务,sc delete mysql 删除服务) 执行上面步骤,默认就创建了个MySQL服务, 不区分大小写
  • show variables like ‘char%’;,在Navicat(用户root 端口3306 密码空不用输,就可以登陆 )可视化工具里查询,发现除了文件是二进制,其他编码都是utf8,
    这样就说明了编码可是都正确,就不会出现中文乱码的问题。

这里写图片描述

  • 由于mysql_secure_installation命令或exe文件执行后,root用户无密码的,
    当然也可以用mysqld–initialize –console执行命令,这个方法初始化完后,root用户有密码。密码 是console中输出的一段字符串(记住该字符串)。后面这种我没试过,只是最初了用了5.7之前的安装方式,或在console生存一些字符串,其中有临时密码。如果mysqld – initialize-inscure –user=mysql或mysql_secure_installation.exe的方式,那就请看下面
  • 在Navicat工具里,请看上面个图, 点击用户,然后就看到三个用户 的列表,双击其中任何一个,都可以修改相应的密码
    或者在命令行里执行mysqld –skip-grant-tables,这种命令忘记密码的时候可以跳过验证,然后用下面三种命令。用户一般是root ,…。如果记住密码,也可以先登陆后,然后用下面三种请看
    mysqladmin -u 用户-p 旧密码 password 新密码
    UPDATE user SET password=PASSWORD(‘新密码’) WHERE user=’用户’; FLUSH PRIVILEGES
    SET PASSWORD FOR root=PASSWORD(‘新密码’);
原创粉丝点击