window快速安装部署MySQL环境

在Windows中安装mysql,有的时候在本地测试项目的时候或者不想用公司的数据库,就需要本地部署127.0.0.1环境,下面记录下来安装过程及可能遇到的问题。

一、官网下载 mysql:https://dev.mysql.com/downloads/mysql/

mysql下载页

二、下载完成,将文件解压到你想要安装的盘里。这里我安装到了C盘。之后以管理员身份运行DOS窗口。进入到mysql的bin文件夹

进入bin目录

三、重点来了:我们需要准备的就是配置点东西

在mysql-8.0.11-winx64的文件夹下创建一个名为data的空文件夹。
在bin目录里创建一个my.ini的文件,内容为:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=C:\MyProjects\mysql\mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\MyProjects\mysql\mysql-8.0.11-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

其中basedir的路径是安装mysql的路径,datadir就是刚创建的data目录路径。(路径分割用\)

注意:my.ini文件保存之后,检查下my.ini是否存在,后缀名是否正确。在刚才的bin目录下输入vim m按下Tab键,正确的话会自动补全(我在这遇到了坑)

my.ini

四、接下来在dos窗口里面输入:mysqld --initialize-insecure

五、再输入:mysqld -install (如果说已经存在,可以使用 sc delete mysql 或者 mysql -remove 将其删除) 结果会显示Service successfully installed.

六、最后输入:net start mysql #启动mysql服务

启动

当然还会有MySQL 服务无法启动的情况出现。这时查看你的my.ini文件中basedir和datadir中路径是不是上面说的那样设置的。如果没问题的话,还是启动不成功,这时我们打开刚才创建的data文件夹,你会发现一个以.err结尾的文件,这记录的详细的错误信息。

七、遇到问题:我这出现Failed to find valid data directory 是mysql初始化的时候找不到对应的数据库存储目录

解决方法:

1、手动删掉自己创建的data文件夹
2、然后再管理员cmd下进入 bin 目录,移除自己的mysqld服务

D:\Program Files\MySQL\bin>mysqld -remove MySQL

会显示Service successfully removed.

在cmd的bin目录执行以下命令,程序会在动MySQL文件夹下创建data文件夹以及对应的文件。

mysqld --initialize-insecure

bin目录下执行,mysqld --install ,安装mysqld服务
在bin目录下运行net start mysql ,成功启动mysql服务。

八、忘记密码

1.停止你正在运行的mysql

方法一:命令行:net stop mysql

方法二:任务管理器 --> 服务 --> mysql右键关闭

2.管理员身份运行cmd,输入

mysqld --shared-memory --skip-grant-tables

注:mysqld --skip-grant-tables这个命令8.0以上已经失效

此时这个窗口就不能动了,以管理员身份运行打开一个新窗口

image

3.在新窗口cd到当前目录 ,键入

mysql -uroot -p

密码不用输入,直接回车过去,如图:

image

4.输入 use mysql;,进入mysql
5.输入置空密码命令

update user set authentication_string='' where user='root';

注:8.0以上版本 ‘password’ 字段已经不管用了,会报错,相关的命令比如:update mysql.user set password='newpassword' where user='root';一同失效

image

6.输入设置新密码命令

alter user 'root'@'localhost' identified by '设置的新密码'

7.必填:flush privileges;
这个时候可能报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement;
解决:刷新权限表:flush privileges;

image

8.Ctrl+Z退出mysql,重新运行,使用新密码登录,完成

mysql -h localhost -u root -p

image

9.如果使用navicat连接数据库时报错2059,原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,我们在这里修改一下加密规则就好了

mysql -h localhost -u root -p //登录

use mysql; //选择数据库

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //更改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; //更新用户密码

FLUSH PRIVILEGES; //刷新权限
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。