在windows10下安装最新mysql 8.0.22
若重装 mysql可以看简捷版https://blog.csdn.net/ahmcwt/article/details/109859805
一.准备工作:
首先MySQL 8.0 Server需要Microsoft Visual C ++ 2015可再发行组件包才能在Windows平台上运行。用户应在安装服务器之前确保已将软件包安装在系统上。该软件包可从 Microsoft下载中心获得。此外,MySQL调试二进制文件要求安装Visual Studio 2015。点击下载Microsoft Visual C ++ 2015可再发行组件包
MySQL仅适用于Microsoft Windows 64位操作系统。有关支持的Windows平台的信息,请参见 https://www.mysql.com/support/supportedplatforms/database.html。
1.去mysql官网https://dev.mysql.com/downloads/mysql/
下载mysql 8.0.22社区版压缩包https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-winx64.zip
点击,然后
点击开始下载,晚上下载速度还行,如果迅雷下载可能会快一些.
下载后,不放心的话,可以验证md5的值是否相同.参考https://dev.mysql.com/doc/refman/8.0/en/verifying-md5-checksum.html关于md5的介绍.
方法:1.到网站http://www.fourmilab.ch/md5/,下载md5工具文件点击下载md5.zip
2.解压缩md5,
并把其中的md5.exe拷贝到与下载的mysql8.0.22压缩文件在同一个目录下.(d5系统默认没显示扩展名.exe,但后面类型有显示有"应用程序").
(便捷进入cmd方式:在md5与mysql-8.0.22文件夹所在地址栏里直接输入cmd然后回车,即可进入cmd窗口.
输入dir命令,显示文件名字,便于后面md5验证时用到.
鼠标拖选mysql-8.0.22-winx64.zip,然后ctrl+c复制,
在cmd命令行窗口中,输入md5 空格 然后ctrl+粘贴文件名(省去一个字一个字地输入,也避免了输错),回车,进行校验.
md5.exe mysql-8.0.22-winx64.zip
A78E5DA2BB87B51B6DF06690977BE199 mysql-8.0.22-winx64.zip
对比验证所产生的校验和(十六进制数字的字符串)与相应软件包正下方的下载页面上显示的校验和相符。
2.解压:
解压缩后,有两层文件夹mysql-8.0.22-winx64,把最里面的那个mysql-8.0.22-winx64剪切,粘贴到c盘或d盘的根目录下.并将其文件夹名mysql-8.0.22-winx64改为mysql
(注意:解压后里面共有5个文件夹,2个文件.没有后期出现的data文件夹,data在初始化之后才会出现,如果在初始化时,存在data文件夹,则容易出错,所以需删去data).
二.安装mysql
windows下有两种安装方式,一种是.msi文件自动安装;另一种是解压缩下载的文件,手动安装.这里采用的是手动方式的.
参考:https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html
(一)如果是由低版本升级到高版本mysql:
参考:https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html
1.从https://dev.mysql.com/downloads/下载MySQL的最新Windows ZIP存档发行版。
2.如果mysql服务正在运行,停止它.
1)如果是作为服务安装了,用:
sc stop mysqld_service_name
或者 net stop mysqld_service__name
2)如果没用将mysql服务器作为服务运行,用mysqladmin将其停止.例:
D:\> mysql\bin>"\bin\mysqladmin" -u root -p shutdown
3.解压缩zip文件,建议覆盖现有的mysql安装(如C:\mysql),也可以将其安装到其他目录中,例如:D:\mysql8.
4.重新启动服务器。例如,如果将mysql作为服务运行,则使用:
SC START mysqld_service_name
或 NET START mysqld_service_name
否则直接调用 mysqld.
5.mysql8.0.16之前,以管理员身份运行mysql_upgrade来检查sql表,如有必要,并尝试修复、更新。8.0.16及以后的版本则不需这一步。
使用mysql_upgrade的方法:1).确保服务器正在运行.2).命令行执行mysql_upgrade [options] 3).停止服务器并且重新启动,以便任何系统表更改长效.
默认情况下,mysql_upgrade以MySQLroot
用户身份运行 。如果在root
运行mysql_upgrade时密码已过期 ,则会显示一条消息,提示您密码已过期,并且 mysql_upgrade失败。要更正此问题,请重置root
密码以使其失效,然后再次运行mysql_upgrade。首先,以以下方式连接到服务器root
:
shell> mysql -u root -p
Enter password: **** <- enter root password here
使用ALTER USER
以下命令重置密码:
mysql> ALTER USER USER() IDENTIFIED BY 'root-password';
然后退出mysql并再次运行 mysql_upgrade:
shell> mysql_upgrade [options]
shell> mysql_upgrade [options]
(二)如果不是升级安装:
(本文要介绍的安装方法)
1.创建配置文件my.ini
在前面准备工作做好下载并解压之后,(确保以具有管理员权限的用户身份登录windows).在mysql目录下,双indows10按下图设置勾选显示"文件扩展名",右键创建文本文件,保存命名为my.ini
my.ini文件内容如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:/MySQL
# 设置mysql数据库的数据的存放目录
datadir=D:/MySQL/Datasocket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=128M
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4,5.5.3之后可以支持utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证以兼容之前版本连接,5.6以后已启用 ''sha256_password'插件,但其在以后版本里可能会弃用. 其提示建议:Please use caching_sha2_password instead'
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集,
# default-character-set=utf8mb4 实践没发现此句有什么用,反而在运行\mysql\bin>mysql_secure_installation时会出现错误提示mysql_secure_installation: [ERROR] unknown variable 'default-character-set=utf8mb4'.,用#注释掉就好了.
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
Microsoft Windows路径名在选项文件中使用(正斜杠)而不是反斜杠指定。如果确实使用反斜杠,则将它们加倍:
在选项文件中,变量设置不带前导破折号:
[mysql] max_allowed_packet=16M
命令行带mysql --max_allowed_packet=16M
如果愿意,可以将变量名称中的下划线指定为破折号。以下选项组是等效的。两者都将服务器密钥缓冲区的大小设置为512MB:
[mysqld] key_buffer_size=512M [mysqld] key-buffer-size=512M
[mysqld]
# set basedir to your installation path
basedir=D:\\mysql
# set datadir to the location of your data directory
datadir=D:\\mydata\\data
管方网站上有这个说法,现在实际在用的时候,感觉好像都行。建议用斜杠/
这都是正确的,,官方建议值用引号括起来.
注意保存时,编码格式选择ANSI,而不是默认的UTF-8
2.数据目录初始化
在前面安装了Visual C ++ 2015可再发行组件包,下载解压mysql压缩包并改名,以及建立配置文件my.ini之后,要进行数据目录初始化操作.
这里,首先要以本机windows管理员的身份进入cmd终端窗口:
找到d盘mysql文件夹,双击打开:
点击"文件"--"打开Windows PowerShel(R)"--"以管理员身份打开Windows PowerShell(A)"
另一进入cmd命令窗口方法是:win+s,如下图,鼠标右击"",选择"以管理员身份运行".(如果win+s之后,没有看到,则手动输入cmd三个字母之后就会出现.用过了下次也会出现)
运行初始化命令:
先删除data文件夹;
mysqld --initialize --console //带密码初始化.
用-I替代--initialize效果一样:mysqld --defaults-file=d:\mysql\my.ini -I --console
(在mysql下自动建立data文件夹并复制一堆文件进去;密码最好拍照记录,防遗.)
也可以不带密码进行初始化:
mysqld --defaults-file=d:\mysql\my.ini --initialize-insecure --console
3.第一次启动mysql服务:
3.1开一cmd窗口(管理员):测试:启动mysq服务:mysqld --console
如果省略该--console
选项,则服务器将诊断输出写入数据目录中的错误日志(d:\MySQL\data
默认情况下)。错误日志是带有.err
扩展名的文件,可以使用该--log-error
选项进行设置。
3.2开另一cmd窗口(管理员):客户端连接mysql服务:mysql -uroot -p (-u root与-uroot等效,root为用户名)
(如果用于--initialize-insecure
初始化数据目录,使用 root
不带密码的方式连接到服务器 ,可以用:mysql -u root --skip-password)
3.3修改密码: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
登录连接mysqld服务器之后,使用ALTER USER
语句分配新 root
密码,否则在客户端运行命令都会提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
注:可以在客户端窗口用cmd命令行方式:mysqladmin -u root shutdown -p 停止 服务窗口对应的mysqld服务。
D:\mysql\bin>mysqladmin -u root shutdown -p
Enter password: *****
此命令调用MySQL管理实用程序 mysqladmin连接到服务器并告诉它关闭。该命令以MySQLroot用户身份连接,该 用户是MySQL授权系统中的默认管理帐户。
注意
MySQL授权系统中的用户完全独立于Microsoft Windows下的任何操作系统用户。
改完密码,还不能算完,还有一步:
4.把mysql注册到windows的后台服务,并启动mysql服务:
mysqld --install mysql --defaults-file=d:\mysql\my.ini
只读给定的选项文件。如果文件不存在或无法访问,则发生错误。 file_name
如果给出为相对路径名而不是完整路径名,则相对于当前目录解释。
例外:即使这样--defaults-file
, mysqld也会 读取 mysqld-auto.cnf
。
如果使用了命令行,则它必须是命令行上的第一个选项,但如果服务器是使用 --defaults-file
and --install
(或 --install-manual
)选项启动的,则--install
(or --install-manual
)必须是第一个选项 。
此步可能存在的问题:
在Windows上,如果服务器使用--defaults-file
和 --install
选项 启动,则 --install
必须先启动(排在前面)。
ok
拓展:
关于选项文件my.ini
选项文件处理顺序
Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf D:\mysql\my.ini D:\mysql\my.cnfMySQL按照以下讨论中描述的顺序查找选项文件,并读取所有存在的文件。如果您要使用的选项文件不存在,请使用刚刚讨论的适当方法来创建它。
注意有关与NDB Cluster程序一起使用的选项文件的信息,请参见 NDB Cluster的配置”。
在Windows上,MySQL程序以指定的顺序从下表中显示的文件中读取启动选项(首先读取的文件优先,随后读取的文件优先)。