windows系统安装MySQL 及 踩坑经验总结
1. 环境配置
2. MySQL安装包下载
MySql安装包下载地址:https://dev.mysql.com/downloads/mysql/
使用google浏览器的话,浏览器会自动识别当前操作系统的版本并反馈给下载网站,所以,下载页面只有与当前操作系统对应的MySQL版本
下载后解压:D:\软件安装包\mysql-5.7.22-winx64
3. 配置环境变量:
变量名:MYSQL_HOME
变量值:D:\program file\mysql\mysql-5.7.22-winx64
path里添加:%MYSQL_HOME%\bin;
4. 生成data文件:
以管理员身份运行cmd
进入D:\program file\mysql\mysql-5.7.22-winx64\bin 下
执行命令:mysqld --initialize-insecure --user=mysql 在D:\program file\mysql\mysql\mysql-5.7.22-winx64目录下生成data目录
5. 启动服务:
执行命令:net start mysql 启动mysql服务,如果成功则如下所示:
若提示:服务名无效...所下所示(继续步骤6)
6. 解决启动服务失败(报错):
提示:服务名无效
解决方法:
执行命令:mysqld -install 即可(不需要my.ini配置文件 注意:网上写的很多需要my.ini配置文件,其实不需要my.ini配置文件也可以,我之前放置了my.ini文件,反而提示服务无法启动,把my.ini删除后启动成功了)
若出现下图,说明之前已经安装过其它的版本,需要先移除,使用命令:mysqld remove。
7. 登录mysql:
登录mysql:(因为之前没设置密码,所以密码为空,不用输入密码,直接回车即可)
D:\program file\mysql\mysql-5.7.22-winx64\bin>mysql -u root -p
Enter password: ******
8. 查询用户密码:
查询用户密码命令:mysql> select host,user,authentication_string from mysql.user;
由于root用户初始密码为空,所以authentication_string字段为空。
9. 设置(或修改)root用户密码:
设置(或修改)root用户密码:
mysql> update mysql.user set authentication_string=password("123456") where user="root";
【注意】 "123456",此处引号中的内容是密码,自己可以随便设置,其中password()是一个mysql内置的加密函数,user表中存储的是加密后的密文,同时,我们登陆的时候,输入的明文密码会先经过加密再与存储于数据库中的密文对比,相同则通过。
mysql> flush privileges; #作用:相当于保存,执行此命令后,设置才生效,若不执行,还是之前的密码不变
再次查询用户名和密码:存储的是加密后的结果
mysql> select host,user,authentication_string from mysql.user;
10. 退出mysql:
mysql> quit
Bye
11. MySql服务启动与停止
1.Windows下
- 启动服务:mysqld --console 或 net start mysql
- 关闭服务:mysqladmin -uroot shudown 或 net stop mysql
2.Linux下
- 启动服务:service mysql start
- 关闭服务:service mysql stop
- 重启服务:service restart stop
12. 踩坑经验总结
注意MySQL安装包的下载,切勿下载错了,笔者最初下载的是以下版本:
按照正常步骤重置root密码后,无法登陆,报错如下:
尝试了网上很多攻略均无法解决,最后发现,原来这个版本的password()函数使用方法与5.7版本很不一样,笔者没有找到相应的资料,但多次尝试均无法成功。于是,笔者重置密码采用了如下语句:
update mysql.user set authentication_string="123456" where user="root";
flush privileges;
重置密码成功,但是退出后再次登录则报错,因为,存储的是明文密码,但是登录的时候却是先将明文加密后再与存储的密码对比,显然,而这是不一致的。
参考文献:https://www.cnblogs.com/reyinever/p/8551977.html