一、官网下载mysql安装包
https://dev.mysql.com/downloads/mysql/
解压后目录结构
解压后的文件并没有data数据库文件夹和my.ini配置文件,data文件夹在8.0+版本无需自己手动创建,执行mysqld --initialize --console初始化数据库后会自动创建。
二、my.ini配置文件(基本配置)
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置默认字符集
default-character-set=utf8
[mysql]
no-beep
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置mysql端口
port=3306
# 设置mysql的安装目录.
basedir=D:/softInstall/mysql-8.0.18-winx64/
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可
#datadir=D:/softInstall/mysql-8.0.18-winx64/Data
# 连接到服务器时使用的默认身份验证插件
default_authentication_plugin=caching_sha2_password
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置服务端使用的字符集
character-set-server=utf8
三、初始化mysql
由于创建windows 服务需要管理员权限,避免后续麻烦都需要以管理员身份运行cmd,这里初始化就不用普通方式运行cmd了,直接使用管理员方式运行,
如果不懂怎样打开,那么就到C:\Windows\System32\目录下,找到cmd.exe,右键以管理员方式运行即可
C:\Windows\System32\cmd.exe
在管理员模式下,切换目录到解压文件夹的bin目录下执行命令:mysqld --initialize --console
这里初始化的密码一定要记住,待会mysql启动登陆需要用到。
四、创建mysql服务并启动服务
执行命令:mysqld --install
出现Service successfully installed.说明服务创建成功
执行命令:net start mysql 启动mysql服务
打开服务,可以看到mysql服务正在运行,说明服务已成功启动
五、配置环境变量
WIN+R输入cmd打开新的dos命令窗口,需要切换到mysql安装目录的bin目录下,才能使用mysql -u username -p命令登陆mysql
否则就会报如下图错误,为了在任何目录下都能使用mysql命令,这里配置一下环境变量,
右键我的电脑=>属性=>高级系统设置=>环境变量=>系统变量,新建变量名:MYSQL_HOME 变量值:D:\softInstall\mysql-8.0.18-winx64(更换为自己安装mysql的根目录),在path后加上;%MYSQL_HOME%\bin,即可在其他目录下使用mysql命令
六、登陆
尝试输入mysql -uroot -p 回车
输入密码,密码就是在初始化数据库时 ‘root’@‘localhost’:后的那一串
如果正常登陆,那么跳过下面,直接看下一步
如果出现如下错误Access denied for user ‘root’@‘localhost’(using password:YES)错误,说明使用了密码,但是密码错误了
那么可能是刚刚保存的密码,带有格式,尝试复制到txt文件上,在从txt文件复制粘贴看看是否能登陆,
如果还不行,可以搜搜网上免密登陆方法,在配置文件[mysqld]下面加上skip-grant-tables或者停止mysql,使用控制台带上skip-grant-tables启动等各种方式,
跳过密码验证,进去修改密码。
但是吧,加skip-grant-tables这种
方式我这行不通,只要一改配置文件,在[mysqld]加skip-grant-tables,mysql服务就无法启动,用控制台带上skip-grant-tables的形式也没有效果,Linux版本的到是有个mysqld_safe命令可以进去,但window我没找到,所以用了简单粗暴的方式,删除服务,重新初始化数据库,也就是重装
步骤:
--| 打开以管理员身份运行的dos窗口
--| net stop mysql 停止mysql服务(如mysql已经停止,忽略此步)
--| sc delete mysql 删除mysql服务
--| 打开mysql安装目录,删除data文件夹(待会初始化会重新生成)
--| 在管理员模式cmd下,切换目录到mysql的bin目录下,输入命令:mysqld --initialize --console
--| mysqld --intsall安装mysql服务
--| net start mysql 启动服务
--| 另开一个cmd窗口,保持管理员运行窗口不关闭,登陆密码直接从管理员运行窗口复制,保证格式无误,再进行登陆尝试。
我安装时是第一次密码错误无法登陆,也无法设置跳过密码登陆,不确定是那个步骤错了,卸载重装后,就能登陆了
后面想复现第一次的错误,复制的是初始化时记录的密码但无法登陆问题,试了几次删除重装,都没复现,也不懂第一次安装到底是什么?先在这记录一下,以后再重装电脑后需要装mysql时可能还会遇到。
注:重装如果更换了安装目录,删除服务了,要去看看注册表有没有mysql相关注册信息,有的话,要删掉,以免后面安装出错
七、密码重置
8.0+登陆后需先修改密码,才能使用
如图,输入show databases 查看数据库,报要重置密码
执行命令:alter user root@'localhost' identified by '密码';
修改成功后show databases,查询成功
注意:由于一开始配置文件配的身份验证插件是caching_sha2_password,会导致使用navicat工具链接数据库时报如下图错误
处理方式有两种,
一是停止服务,修改配置文件
将default_authentication_plugin=caching_sha2_password
改为default_authentication_plugin=mysql_native_password
重启服务,重连即可
二是,在cmd登陆mysql
以mysql_native_password方式修改密码
这里我用的是第二种
修改密码命令:
alter user root@'localhost' identified with mysql_native_password by '密码';
使用navicat链接成功