当前位置: 首页 > news >正文

Window安装Mysql8

文章目录

  • 下载zip安装包:
  • 安装前配置
    • 解压zip包到安装目录
    • 配置环境变量
    • 配置初始化的my.ini文件
  • 安装mysql
    • 初始化数据库
    • 安装服务
    • 更改密码
    • 授权远程数据库
  • 远程连接mysql时遇到下列问题:
  • 数据库报only\_full\_group\_by错误,解决方案

下载zip安装包:

MySQL8.0 For Windows zip包下载地址:
https://dev.mysql.com/downloads/file/?id=476233,进入页面后可以不登录。
后点击底部“No thanks, just start my download.”即可开始下载。

安装前配置

解压zip包到安装目录

E:\software\mysql\mysql-8.0.11-winx64

配置环境变量

将解压文件夹下的bin路径添加到path变量值中,前后以 ; 结尾

配置初始化的my.ini文件

我们发现解压后的目录并没有my.ini文件,没关系可以自行创建。在安装根目录下添加 my.ini(新建文本文件,将文件类型改为.ini),写入基本配置:

[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧 basedir=E:\\software\\mysql\\mysql-8.0.11-winx64 # 设置mysql数据库的数据的存放目录 datadir=E:\\software\\mysql\\mysql-8.0.11-winx64\\Data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口port=3306 default-character-set=utf8

注意:其中的data目录不需要创建,下一步初始化工作中会自动创建。

安装mysql

初始化数据库

在安装时,必须以管理员身份运行cmd,否则在安装时会报错,会导致安装失败的情况

在MySQL安装目录的 bin 目录下执行命令:

mysqld --initialize --console

执行完成后,会打印 root 用户的初始默认密码,比如

C:\Windows\System32>mysqld --initialize --console 2024-12-19T08:39:49.982918Z 0 [System] [MY-013169] [Server] D:\devSoftwareInstall\mysql-8.0.33-winx64\bin\mysqld.exe (mysqld 8.0.33) initializing of server in progress as process 31880 2024-12-19T08:39:49.995518Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2024-12-19T08:39:50.150977Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2024-12-19T08:39:50.657217Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (gIp%1hwyUkA

注意!执行输出结果里面有一段:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E其中root@localhost:后面的“rI5rvf5x5G,E”就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。
要是误操作,关快了,或者没记住,那也没事,删掉初始化的 datadir目录,再执行一遍初始化命令,又会重新生成的。当然,也可以使用安全工具,强制改密码,用什么方法,自己随意。
参考: https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html

安装服务

在MySQL安装目录的 bin 目录下执行命令:

mysqld --install [服务名]

后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。

安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。

net start mysql

通过命令net stop mysql停止服务。

net stop mysql

通过命令sc delete MySQL/mysqld -remove卸载 MySQL 服务

sc delete MySQL/mysqld -remove

更改密码

在MySQL安装目录的 bin 目录下执行命令:

mysql -u root -p

这时候会提示输入密码,记住了上面第3.1步安装时的密码,填入即可登录成功,进入MySQL命令模式。
在MySQL中执行命令:

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

修改密码,注意命令尾的;一定要有,这是mysql的语法

到此,安装部署就完成了。官方说测试速度MySQL8比5快两倍。

可以用 命令查看一下默认安装的数据库:

show databases; use mysql; show tables; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql>

看到默认初始化了mysql数据库,其中user表里面存储MySQL用户信息。我们可以看一下默认MySQL用户:

select user,host,authentication_string from mysql.user; mysql> select user,host,authentication_string from mysql.user; +------------------+-----------+-------------------------------------------+ | user | host | authentication_string | +------------------+-----------+-------------------------------------------+ | mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-------------------------------------------+ 4 rows in set (0.00 sec) mysql>

管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”
创建用户:

CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#'; //(需要注意:mysql8.0加密方式修改了) //检查用户 select user, host, plugin, authentication_string from user\G;

授权远程数据库

//授权所有权限 GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%'; //授权基本的查询修改权限,按需求设置 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%'; //查看用户权限 show grants for 'xxh'@'%';

示例:

mysql> use mysql; Database changed mysql> CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#'; #创建用户(注意:mysql8.0加密方式修改了) Query OK, 0 rows affected (0.07 sec) mysql>

查看密码加密方式:

mysql> select user, host, plugin, authentication_string from user; +------------------+-----------+-----------------------+-------------------------------------------+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+-------------------------------------------+ | xxh | % | mysql_native_password | *70FD6FB4F675E08FF785A754755B5EBA6DA62851 | | mysql.infoschema | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | mysql_native_password | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-----------------------+-------------------------------------------+ 5 rows in set (0.00 sec) mysql>

另外,如果需要新增账户,或者本机以外的其他人访问MySQL则还需要设置内置账户的host,具体可以参考:MySQL创建用户与授权

远程连接mysql时遇到下列问题:

[HY000][1130] null, message from server: "Host ‘192.168.245.1’ is not allowed to connect to this MySQL server
解决方案:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; flush privileges; //生效 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wangcheng' WITH GRANT OPTION; flush privileges;

表示授权某个用户在哪些主机上可以对哪些数据库和表进行哪些操作。
• ON.db.table: 数据库和数据表
• TO user: 要授权的用户
• @ host: %’表示任何主机

数据库报only_full_group_by错误,解决方案

决方案:
首先执行一下命令查看是否开启了only_full_group_by

select @@global.sql_mode

结果:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

如果看到有ONLY_FULL_GROUP_BY这个,直接删除掉就行了。具体见下:

方式一:
在mysq的配置文件下新增配置,然后保存重启mysql即可

[mysqld] sql_model=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

方式二:

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

注意: 8.0.x的版本不支持NO_AUTO_CREATE_USER,去掉即可

http://www.jsqmd.com/news/1368577/

相关文章:

  • 中移ML307C(4G Cat1,C-SDK,OpenCPU)模组SDK更新-CD_ML307C-DC-CN_OpenCPU_Standard_1.0.4.2605181713_release
  • 未来展望:bash-lib的发展路线图与新功能预告
  • Node.js 服务高并发卡顿排查:从 Event Loop 阻塞诊断到 CPU Profiling 闭环
  • 算法可视化对教学与调试效率的影响分析7
  • 2026年沈阳搬家公司挑选攻略:辽宁退伍老兵搬家及优质企业盘点 - 资讯报道
  • 2026DevOps软件品牌盘点:开源与商业版全方位对比
  • 华为MetaERP Oracle EBS R12 eBTax(ZX 模块)与 Fusion Cloud Tax 完整设计哲学深度拆解前置总纲EBS eBTax:EBS 内部重构式集中税务引擎,解决
  • 如何让你的论文大纲一眼看上去就是 “高分骨架”?工具 + 人工筛选法
  • notify Composer脚本全解析:从代码检查到性能测试
  • 2026年沈阳纸箱厂选购攻略:辛隆包装及优质企业实测梳理 - 资讯报道
  • 从混乱到清晰:immutable-devtools如何将复杂Immutable数据可视化
  • 西北工业大学/香港理工大学Matter:焦耳热重塑一维陶瓷纳米线合成
  • python-shortcuts与Docker:跨平台开发Siri快捷指令的完美方案
  • 敏感数据保护:smart-cloud全链路日志脱敏技术实践
  • AI技能训练新范式:像调参一样优化Agent技能
  • Claude Code自动模式:AI编程如何破解代码质量、效率与认知负担三重难题
  • OpenCensus-Java未来展望:新特性与社区发展路线图
  • Android 无障碍优化: 如何为视图添加自定义导航动作
  • 3分钟搞定macOS安装包下载:图形化神器终极指南
  • Feather完整指南:如何在iOS设备上免越狱安装和管理应用
  • 华为MetaERP Oracle EBS R12 eBTax(ZX) Fusion Cloud Tax 完整底层实现逻辑拆解整体分为:EBS eBTax 全链路执行逻辑、数据层架构、Withhol
  • 2026年沈阳高考复读机构挑选攻略 飞跃领军等正规院校实测梳理 - 资讯报道
  • Promise与async/await在Koa.js中的最佳实践
  • 长沙星沙公司代办避坑指南 - 资讯报道
  • 2026年杭州印刷厂**:按资质、工艺与口碑选靠谱厂家 - 资讯报道
  • AI短剧节奏优化实践:基于知漫剧的画面时长与配音节奏控制方法
  • 【信息科学与工程学】【材料科学】第二篇 芯片中的材料科学01
  • Kimi Delta Attention与MLA交替堆叠:Ling-3.0-flash架构创新背后的技术原理
  • iOS推送注册进阶:Orbiter的设备令牌管理与静默通知配置指南
  • 2026年集成式绿色节水碳纤模块品牌选购参考 天吴环保等优质企业梳理 - 资讯报道