Win10 下 MySql5.7 的安装与配置

下载

官网下载地址

选择免安装版即可,

MySQL 5.7 - Windows - 图1

MySQL 5.7 - Windows - 图2

解压

将下载的压缩包解压到你想要放置MySQL的目录,避免中文空格。

示例:D:\devtools\mysql-5.7.28-winx64

配置

安装mysql服务

  • 在安装目录中的bin目录下使用管理员权限打开cmd窗口,安装mysql服务。
    命令:mysqld --install
    MySQL 5.7 - Windows - 图3

初始化mysql

  • 初始化会生成一个随机密码,这里需要记住这个密码,方便之后登录mysql进行修改。
    命令:mysqld --initialize --console
    MySQL 5.7 - Windows - 图4

启动mysql服务

  • 登录mysql之前,需要启动之前安装的服务。
    命令:net start MySql
    MySQL 5.7 - Windows - 图5

登录

  • 登录mysql可以验证是否安装成功,这里登录时的用户名为root,密码为刚才初始化生成的随机密码,刚才应该已经记录。
    命令:mysql -uroot -
    MySQL 5.7 - Windows - 图6

这个时候发现登录不上去。。

报错信息:

  1. Enter password: ************
  2. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决方案:

  1. 首先停止MySQL服务,使用管理员权限打开cmd窗口,输入net stop mysql
  2. 停止成功后,找到mysql的安装目录,删除data文件夹
  3. 在mysql安装路径下的bin目录下,执行命令:mysqld --initialize --console,这一步会在最后生成一个随机初始密码,先记住下一步登录时用
  4. 现在启动MySQL服务:net start mysql
  5. 登录mysql: mysql -uroot -p********,*代表第3步生成的随机密码
  6. 这时发现登录成功,之后修改密码,使用初始密码登录的mysql没有对数据库的任何权限

修改密码

  1. mysql> alter user 'root'@'localhost' identified by '新密码';
  2. mysql> quit

重新登录,即可正常使用mysql数据库

至此,MySQL5.7的安装与配置已经完成。

设置全局环境变量

右键此电脑👉点击左侧高级系统设置👉点击最下面的环境变量👉下面系统变量中找到path👉点击下面的编辑按钮👉点击右侧新建👉将mysql的bin目录地址复制进去(D:\devtools\mysql-5.7.28-winx64\bin

MySQL 5.7 - Windows - 图7

补充

手动创建my.ini配置文件,该文件可以指定数据库默认的字符编码,防止插入数据时的中文乱码问题。

该文件存放在mysql的安装路径,即:D:\devtools\mysql-5.7.28-winx64

  1. [mysql]
  2. # 设置mysql客户端默认字符集
  3. default-character-set=utf8
  4. [mysqld]
  5. #设置3306端口
  6. port = 3306
  7. # 设置mysql的安装目录
  8. basedir=D:\devtools\mysql-5.7.28-winx64
  9. # 设置mysql数据库的数据的存放目录
  10. datadir=D:\devtools\mysql-5.7.28-winx64\data
  11. # 允许最大连接数
  12. max_connections=200
  13. # 服务端使用的字符集默认为8比特编码的latin1字符集
  14. character-set-server=utf8
  15. # 创建新表时将使用的默认存储引擎
  16. default-storage-engine=INNODB
  17. #开启查询缓存
  18. explicit_defaults_for_timestamp=true
  19. skip-grant-tables

创建完成后,需要重新启动mysql服务

  1. net stop mysql
  2. net start mysql

之后再创建的数据库表的编码就已经被指定了