安装环境:win7 64位操作系统
下载解压版安装包:mysql-5.7.17-winx64.zip
因为安装了几次,改了很多东西后服务就打不开了,所以后来又重新修改的配置文件等,本文是最终可用的案例。
案例适用于5.7,其他版本请自行测试。
1.解压:
下载好了之后解压到自己要保存的路径,举例:D:\Program Files (x86)\mysql\mysql-5.7.17-winx64
2.更改配置文件my.ini:
正常解压好了之后根目录(mysql-5.7.17-winx64)下会有一个my-default.ini默认配置,复制出来一份更名为my.ini,
下面是配置文件中的内容:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\Program Files (x86)\mysql\mysql-5.7.17-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Program Files (x86)\mysql\mysql-5.7.17-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf-8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
需要注意的几点:
①上网查有说把配置文件my.ini放到根目录下的mysql-5.7.17-winx64/bin目录下(所以我这里就放到了bin目录下);
②my.ini文件中的datadir目录一定是本目录或者***\data,因为第一次安装的时候路径不是这样写的,写什么就会生成什么文件夹,生成出来的data目录也是有问题的,所以这里还是选择了按部就班的写成了根目录\data的形式;
③如果是之前安装失败过的话,请手动删除之前的data文件夹,然后根据本文重新进行安装;
3.配置环境变量:
不会配置的请百度搜索,
新建一个系统变量:MYSQL_HOME
变量值:D:\Program Files (x86)\mysql\mysql-5.7.17-winx64(就是解压的目录)
更改系统变量Path,在变量值的最后加入%MYSQL_HOME%\bin;(这里需要注意之前的Path变量最后有没有;这个符号,没有需要手动加上,然后在添加%MYSQL_HOME%\bin;)
4.初始化数据库:
以管理员身份进入cmd命令行,先切换到bin目录下:D:\Program Files (x86)\mysql\mysql-5.7.17-winx64\bin>
输入:
mysqld --initialize
会自动生成带随机密码的root用户,执行之后会停顿一下,但是不会给相应的提示,然后去看根目录下会生成一个带有文件的data文件夹。
然后输入:
mysqld install
命令行会提示:service successful installed.这时数据库就已经初始化成功。
注意:①生成的随机密码可以去根目录data文件夹下去找,扩展名为.err结尾的文件,一般是以计算机名命名,以文本的方式打开:找到这行:[Note] A temporary password is generated for root@localhost:这里是随机密码
②因为我上面直接把my.ini放到bin的目录下,所以mysql会自己去找my.ini文件,不用再在命令行中指定。如果存在多个my.ini 文件,mysql会自动合并相同的配置,保留最后一个查找到的配置文件。
5.启动MySQL服务:
可以到服务中去启动MySQL服务,也可以在命令行中输入:
net start mysql
,成功后会提示mysql已经启动成功
注意:启动时请关闭打开的mysql配置文件,这也是写这篇文章时发现的,发现打开查找密码的.err文件时服务不能正常启动。
6.进入数据库:
以管理员身份运行cmd命令行进入bin目录下输入:
mysql -u root -p
回车然后输入密码,即可进入mysql数据库,至此mysql已经安装成功。
mysql没有安装成功:请关闭所有mysql的服务和进程,删除data目录包括data下的文件,仔细检查环境变量及配置文件中的路径是否正确,然后从步骤2再来一遍。
mysql登录密码忘记:方案一、可以考虑重新安装;
方案二、先关闭mysql服务,然后找到my.ini配置文件,
打开编辑,在最后一行换行加入skip-grant-tables,意思是跳过登录校验。
然后打开mysql服务,进入命令行输入mysql即可进入,输入
alter user 'root'@'localhost' identified by '你的密码';
回车,即可修改密码。 或者
set password=password("youpassword");
回车,即可修改密码。 再输入
FLUSH PRIVILEGES;
意思是mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
如有什么不妥当的地方欢迎评论补充。