到官网下载mysql8数据库软件
(我这里更新了,以8.0.22为例),https://dev.mysql.com/downloads/mysql/
下载完成后,解压到自己的一个目录,这里顺便把文件夹重命名mysql8,因为太长了不好看
配置环境变量
到D:\Asoftware\package\mysql\mysql8\bin
新建文件价夹用于存放mysql数据
(初始化默认也是这个路径的文件夹,由于待会会使用配置文件初始化,所以这里需要手动创建文件夹指定,或者指定到你需要的位置) D:\Asoftware\package\mysql\mysql8\data
编辑配置文件my.ini
创建my.ini文件(文本格式后缀改成ini就行了)并放在该路径
my.ini主要配置内容
[mysqld]
# 设置3306端口
port=3306
#修改时区设置(新版本修改,不然连接数据库报时区错误,一堆英文,你还得百度)
default-time-zone = '+8:00'
# 设置mysql的安装目录
basedir= D:\Asoftware\package\mysql\mysql8
# 设置mysql数据库的数据的存放目录(这个可以修改到你指定的文件夹)
datadir= D:\Asoftware\package\mysql\mysql8\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8(utf8mb4这个才是真的utf8格式,默认的不是很建议)
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集(utf8mb4这个才是真的utf8格式,默认的不是很建议)
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口(utf8mb4这个才是真的utf8格式,默认的不是很建议)
port=3306
default-character-set=utf8mb4
初始化MySQL
(注意如果没有配置环境变量需要到对应的mysql安装目录的bin里面执行cmd): mysqld --initialize --console
初始化后data文件夹有数据了,可以去看一下.得到密码 bi(.kf+eI6w2 并记住它,后面会用到
如果此时错误 由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题
解决,使用补丁 链接:https://pan.baidu.com/s/1u8wW3yQr79dOAPqMTyDP8w 提取码:8888 (安装完成后可能需要重启生效)
安装MySQL服务
(特别注意CMD此时必须是在管理员模式才行,不然会报无权限之类的错误)
执行D:\Asoftware\package\mysql\mysql8\bin>mysqld --install
安装常见错误
报错1:如果安装过但是卸载未卸载干净
解决方案 D:\Asoftware\package\mysql\mysql8\bin>sc delete mysql
报错2:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
解决方案:关闭防火墙或者杀毒软件,再手动启动服务(在任务管理器里面找)
如果没有遇到上面的问题那么执行mysqld --install 会弹出成功标识.
启动MySQL服务
登录MySQL
D:\Asoftware\package\mysql\mysql8\bin>mysql -u root -p
输入密码(刚才保存的)
修改MySQL密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
查看MySQL数据库
mysql> show databases;
设置远程访问
(要搭建数据库主从复制或者同一局域网访问,可选,可以不配置,根据需要)
mysql> use mysql
mysql> select host,user,authentication_string,plugin from user;
mysql> update user set host = "%" where user = "root";
#再次查看root对应的host是不是变成%了
mysql> select host,user,authentication_string,plugin from user;
Navicat测试连MySQL数据库
=====================上面已经完成MySQL8的安装了=====================================
一些细节问题
java连接数据库的URL地址示例:
jdbc:mysql://localhost:3306/user?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
使用mybatis的插件连接数据库的URL示例(主要是idea的插件如果报错就填写这个):
jdbc:mysql://localhost:3306/user?characterEncoding=utf8&useSSL=false&serverTimezone=GMT&rewriteBatchedStatements=true
idea的mybatis插件教程参考连接:
https://github.com/kmaster/better-mybatis-generator/blob/master/README.md
单独手动配置时区
注意时区在my.ini配置好了的话就不需要进行下面的步骤,下面是针对时区相差8小时的临时补救措施.
show variables like '%time_zone%';
set global time_zone = '+8:00';
flush privileges;
Linux版本安装MySQL8
https://blog.csdn.net/wozniakzhang/article/details/84256090