mysql8.0和mysql5.6安装配置及修改密码

本文详细介绍了MySQL8.0的安装步骤,包括下载、系统变量配置、my-default.ini文件设置、服务安装及密码修改过程。适用于初次安装或需重新配置MySQL的用户。

本来不打算写的,但是最近又安装了一次,每次安装都得百度一遍。。。所以还是自己写一篇,下次安装也不用再找别人的。。

1.下载

MySQL :: Download MySQL Community Server

2.配置系统变量

MYSQL_HOME: D:\Java\mysql-8.0.18-winx64

Path变量里加上 %MYSQL_HOME%\bin

3.新建一个my-default.ini文件

内容如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
port=3306
basedir=D:\Java\mysql-8.0.18-winx64
datadir=D:\Java\mysql-8.0.18-winx64\data
# port = .....
# server_id = .....


# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

4.安装。。。

必须用管理员身份打开命令行。。

 1)mysqld --initialize --console   

 这个命令会生成3中的data文件夹,所以如果安装失败重新安装的时候,执行此命令前先删掉data文件夹

这里红框部分是初始密码,第四步会用上

2) mysqld install mysql  

这个命令的mysql是一个mysql服务代号,如果mysql已经存在,执行1)的时候会生成mysql2,因此这里的命令就要用对应的net install mysql2, 这里如果想删掉mysql2, 可以执行 mysqld -remove mysql2  (sc delete mysql名称, 似乎也行)

3) net start mysql 

启动mysql服务

4)登录mysql并修改密码

 mysql -u root -p 

  输入刚刚1)中的密码....

修改密码: ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; // 记住你的密码是123456

退出: exit;

完成。。。。。

由于版本可能不一样,还有一种情况是:(这是安装mysql5.6的方式,以上是mysql8.0)

执行完mysqld --initialize --console出现的是以下情况,注意,这种情况下初始密码为空,直接回车就行

 按回车登录成功之后修改密码:

set password for root@localhost = password('123456');

反正就是很奇葩。。。将就着用吧,还能删咋的。。。。

如果想切换数据库,从5.6切换到8.0的话,可以先删掉5.6的mysql服务 mysqld -remove mysql,人然后再8.0重新安装服务,一定记得net start mysql (这里mysql是名称,可以是mysql1),然后再登录

### MySQL 8.05.6的兼容性对比及差异分析 #### 1. SQL模式语法规则的变化 MySQL 8.0引入了更严格的SQL模式设置,其默认值包括`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`[^1]。这与MySQL 5.6的默认SQL模式(`STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION`)相比更加严格。因此,在从5.6升级到8.0时,需要检查并调整现有的SQL查询以符合新的规则。 #### 2. 存储引擎支持的变化 在MySQL 8.0中,某些存储引擎如`FEDERATED``ARCHIVE`被移除或不再作为默认安装的一部分[^1]。此外,MyRocks等第三方存储引擎的支持也需要额外配置测试。如果应用程序依赖于这些存储引擎,则需要评估替代方案或继续使用旧版本。 #### 3. 字符集排序规则的变更 MySQL 8.0将默认字符集从`latin1`改为`utf8mb4`[^3]。这一变化可能影响现有应用程序的数据存储检索行为,特别是当使用PHP等编程语言连接数据库时。例如,PHP 5.6在连接MySQL 8.0时可能会遇到`PDO::__construct(): Server sent charset (255) unknown to the client`错误,因为默认字符集不匹配。为解决此问题,可以显式设置字符集为`utf8mb4`。 ```php $dsn = "mysql:host=localhost;dbname=testdb;charset=utf8mb4"; ``` #### 4. 用户认证方式的改进 MySQL 8.0默认使用`caching_sha2_password`插件进行用户认证,而MySQL 5.6使用的是`mysql_native_password`[^4]。这种变化可能导致旧版客户端无法连接到MySQL 8.0服务器。为了确保兼容性,可以将用户认证插件切换回`mysql_native_password`。 ```sql ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword'; ``` #### 5. 数据字典DDL操作的优化 MySQL 8.0引入了事务性数据字典即时DDL功能,这些特性显著提高了元数据管理模式更改的效率。然而,这也意味着某些5.6中的DDL操作行为可能发生变化,需重新验证相关脚本。 #### 6. 兼容性挑战 由于跳过了5.7版本直接升级到8.0,可能会面临更大的兼容性挑战。例如,5.6中活跃的API可能已在5.7中被弃用,并在8.0中完全移除。此外,Facebook在升级过程中发现其定制的5.6分支包含1700多个代码补丁需要移植到8.0,这表明大规模升级需要投入大量资源进行代码迁移测试。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值