Windows下安装mysql8.0.20
1.下载安装包
本人操作系统64位,下载对应的64位安装包。
下载地址:
https://downloads.mysql.com/archives/community/
2.配置MySQL环境变量
右击桌面“我的电脑”->属性->选择“高级系统设置”
将MySQL安装目录下的bin目录路径添加进去,再点击确定
接下来cmd命令行可以在任何路径下使用mysql命令了
3.开始安装
下载完成后,将压缩包解压到指定路径。
解压之后的目录如下图所示:
在目录下新建一个my.ini文件
编辑my.ini文件,填入以下内容:
[mysqld]
#设置数据库唯一标识
server-id=1
# 设置3306端口
port=3306
# 设置mysql的安装目录 ---这里输入你安装的文件路径
basedir=E:\Program Files\mysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录,可以事先在操作系统中创建
datadir=E:\Program Files\mysql-8.0.20-winx64\data
#错误日志路径,可以事先在操作系统中创建
log_error=E:\Program Files\mysql-8.0.20-winx64\logs\error.log
#开启binlog二进制日志,mysql8.0.20默认开启Binlog日志,并且格式为ROW
log_bin=mysql-bin
#设置binlog日志最大空间限制,每当达到此数值,就会做一次日志切换,单位B
max_binlog_size=1073741824
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
#default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
打开cmd命令行,初始化mysql服务
mysqld --initialize –console #初始化mysql服务
初始化后会生成一个随机密码
注意!这个随机密码一定要记好
安装mysql服务
mysqld --install mysql
安装完成后启动mysql服务
①直接在cmd命令行启动
net start mysql #启动mysql服务
net stop mysql #停止mysql服务
②在任务管理器中启动
win+r,输入services.msc
启动后使用之前给出的root用户临时密码登录mysql
mysql -u root -p
4.跳过密码登录
mysql8.0版本跳过密码登录和之前的5.7版本不太一样
(1)打开cmd命令行
net stop mysql #停止mysql服务
mysqld --shared-memory --skip-grant-tables #跳过密码登录方式启动mysql
(2)再打开一个新命令行
mysql #直接登录
mysql>flush privileges; #刷新权限
mysql>alter user 'root'@'localhost' identified by '新密码';#更改root用户密码
回到(1)中的命令行
net start mysql #再次启动mysqld
mysql -u root -p #使用更改后的密码登录
5.设置用户远程登录
update mysql.user set host='%' where user='用户名'; #设置用户从任意ip地址登录
update mysql.user set host='指定ip地址' where user='用户名' #设置用户从指定ip地址登录
设置完成后可以用navicat等连接工具测试一下是否可以登录
连接远程数据库服务器如果一直报错连接超时,请排查下防火墙是否开放数据库3306端口。
至此,Windows上安装mysql8.0.20安装结束。
6.安装中的报错
在停止mysql服务时发现 mysql 报错:
mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。
原因:
①可能另外的线程正在占用mysql服务,比如多个命令行操作可能就会导致此问题;
②可能是由于之前安装初始化后报错,导致datadir目录下残留旧数据文件。
第二个原因导致
本人主要是在初始化时服务报错,数据库没有数据,所以可以删除datadir目录下的文件。
如果数据库已经处于生产环境,接下来的操作严禁执行!!!
处于生产环境的数据库如果服务报错,建议查看my.ini文件中的log_error参数地址对应的错误日志进行单独排障。
解决:
删除datadir对应目录下的所有文件(生产环境严禁执行此操作),但是保留datadir目录文件夹
重新初始化mysql服务
mysqld --initialize
#等待上诉命令执行结束后,重启mysql服务
net start mysql
mysql服务已经存在的情况:
如果在之前已安装了mysql服务,因为某些情况下需要重新安装mysql,此时在Windows中已经存在了同名的mysql服务,可以使用以下命令对mysql服务进行删除再重新添加
#Windows中删除服务命令,管理员模式下运行
sc delete 服务名
#服务删除后,再重新安装mysql服务
mysqld --install mysql