• MySQL 8.0.34(x64)安装笔记


    一、背景

      从MySQL 5.6到5.7,再到8.0,版本的跳跃不可谓不大。安装、配置的差别也不可谓不大,特此备忘。

    二、过程

    (1)获取MySQL 8.0社区版(MySQL Community Server)
      从 官网 字样 “MySQL Community Server” 的链接进入到下载页。
      选择8.0.xx(截至2023-9-1,最新版本为34)的zip文件即可(形如:mysql-8.0.34-winx64.zip)。
    (2)安装
      解压zip文件到指定位置(推荐为非系统盘的根目录)即可。
      两个环境变量设置:
       ① 新建MYSQL_HOME变量,并设置为MySQL安装文件夹路径。
       ② 将【%MYSQL_HOME%\bin】加入到PATH变量中。
    (3)配置
      配置文件(.ini、.cnf等)主要参考官方文档中有关配置文件章节
      配置文件名规则:先是my.ini,再是my.cnf;检测位置规则:先是C:\,再是安装文件夹。
      8.0版本安装包没有提供配置文件模板,需自行创建,推荐在安装文件夹中创建my.ini文件。
      常见配置项说明如下,配置文件模板(my.ini)附后。

    选项组选项说明备注
    mysqldbasedirMySQL安装文件夹字符串,
    mysqlddatadir数据文件夹字符串,
    mysqldport服务端口整形,默认值3306,取值范围 [0, 65535]
    mysqldmax_connections同时允许的最大客户端连接数整形,默认值151,取值范围 [1,100000]
    mysqldmax_connect_errors最大连接失败数整形,默认值100,取值范围 [1,18446744073709551615]
    mysqldcharacter-set-server服务(mysqld程序)的默认字符集字符串,默认值utf8mb4
    mysqldsql-mode设置不同的SQL模式(SQL语法)字符串,默认值 ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, and NO_ENGINE_SUBSTITUTION.
    mysqlddefault-storage-engine数据表的默认存储引擎枚举,默认值InnoDB
    mysqlddefault_authentication_plugin默认的身份验证插件枚举,默认值caching_sha2_password,
    其他值:mysql_native_password 和 sha256_password
    mysqldefault-character-setmysql(命令行客户端)默认的字符集字符串,
    clientdefault-character-set客户端(C API)默认的字符集字符串,
    clientport客户端(C API)默认的连接端口整形,

    (4)初始化、启动 服务

    mysqld --initialize --console # 初始化并获取root初始密码
    mysqld --install <服务名> # 安装服务,默认服务名为mysql,可以指定,例如:mysql80
    net start <服务名> # 启动服务
    
    • 1
    • 2
    • 3

    (5)修改root账户密码

    mysql -u root -p #进入mysql命令行工具,密码为root初始密码
    
    ALTER USER root@localhost IDENTIFIED BY '<新密码>';
    exit # 退出命令行工具
    
    net stop <服务名> # 重启mysql服务
    net start <服务名>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    三、问题

    (1)允许远程主机连接服务
      默认MySQL不允许远程主机连接。可修改:

    mysql -u root -p #进入mysql命令行工具
    
    use mysql; # 选择系统库mysql
    select host from user where user='root'; # 查看允许主机
    update user set host = '%' where user='root';
    flush privileges; # 提交
    select host from user where user='root'; # 验证查看
    exit # 退出命令行工具
    
    net stop <服务名> # 重启mysql服务
    net start <服务名>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    (2)数据库字符集修改
      早期默认字符集为utf8,现在几乎统一为utf8mb4(8.0的默认值即utf8mb4)。
      如有修改,可直接修改配置文件的项【character-set-server】即可。需重启服务。

    四、结论

      MySQL 8.0相对5.6和5.7等早期版本,安装、配置的难点还是在配置文件。
      而配置项大致分为3组:服务端(mysqld)、mysql命令行(mysql)和客户端(client)。
      对应的配置项(变量)也各有定义:
      ① Server System Variables
      ② mysql Client Options
      ③ mysql_options

    五、其他

    (1)SQL模式

      查看现有SQL模式:

    use mysql;
    show VARIABLES LIKE '%sql_mode';
    
    • 1
    • 2

      显示内容:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,
    ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
      相关含义参考官方文档
      可通过修改配置项【sql-mode】来修改SQL模式。

    (2)my.ini配置模板

    [mysqld]
    
    # 设置服务端端口
    port=3306
    # $MYSQL_HOME
    basedir=D:\mysql
    # 数据文件夹
    datadir=D:\mysql\DATA
    # 最大连接数
    max_connections=200
    # 最大连接失败次数
    max_connect_errors=10
    # 服务端字符集
    character-set-server=utf8mb4
    # 默认存储引擎
    default-storage-engine=INNODB
    # 默认认证插件
    default_authentication_plugin=mysql_native_password
    
    # this is incompatible with sql_mode=only_full_group_by
    sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    
    [mysql]
    # 客户端默认字符集
    default-character-set=utf8
    
    [client]
    # 客户端连接端口
    port=3306
    # 客户端默认字符集
    default-character-set=utf8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    (3)数据库创建模板

    CREATE DATABASE `<数据库名>` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
    
    • 1

    如图所示:
    在这里插入图片描述

  • 相关阅读:
    译译交友项目介绍
    MySQL8(增删改)
    以沙箱的方式运行容器:安全容器Kata Containers
    精益求精:使用Ansible集中式自动备份核心数据
    c++内存对齐
    【SpringBoot从入门到精通】01-SpringBoot 特性
    R语言绘制染色体变异位置分布图,RIdeogram包
    DDD 项目包结构 + 调用关系说明
    vector 用法 说明
    使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面的两种方法
  • 原文地址:https://blog.csdn.net/paulorwys/article/details/132729572