再安装mysql5.7 或以上的版本出现了一些问题,现在总结下,希望能给初入学习mysql的人一下帮助,大牛就不要来嘲笑小弟我了
首先准备如下:
1.下载mysql 5.7,下载地址:https://www.mysql.com/downloads/ 当然,你下载安装版的安装就简单了,这个教程主要是需要手动配置的mysql,也就是下载下来不是msi或者exe的一键式安装,而是需要自己配置安装的
2.下载 navicat premium ,就是可视的工具代替使用cmd检索等操作mysql数据库
第一步:设置mysql的安装路径
解压下载好的mysql-5.7.13-winx64
在里面找到my-default.ini 文件复制一份修改为my.ini
使用记事本打开my.ini ,找到basedir 和datadir 把前面的#删除
basedir修改为当前mysql的目录
datadir修改为当前目录下的data目录
比如我的mysql路径为: D:\Development\mysql
那么我的设置是
第二步,修改系统环境变量
右键桌面的计算机-属性-高级系统设置-环境变量-在系统变量栏下找到path
找到path编辑里的变量值,注意不要删除里面原来存在的值,只需再最后加上你的mysql路径就行了,注意前面的分好,我的输入是:
;D:\Development\mysql
然后一直确定保存就行了
第三部,安装并启动mysql
使用管理员的身份运行cmd
使用命令进入到mysql的目录下的bin文件夹(不论配没配置环境变量,都需要进入bin目录)
进入bin目录后,首先安装(手动注册)mysql服务
mysqld --install
提醒:此处是使用bin目录下的mysqld.exe 所以此操作需要进入bin目录下,否者出错
如果此处直接启动mysql服务的话
mysql 服务无法启动。
服务没有报告任何错误
既然是启动服务出错了,那么我们就可以查看系统的错误日志了,打开计算机管理-系统工具-事件查看器-windows日志-应用程序
我们发现发现爆出了两个错误信息
第一个是操作中断信息
看第二个
恩,错误很明显,大致意思是没有在datadir(第一步设置的data目录的一个值)目录里面设置的更多信息,查了下,data目录主要是保存和生成一些用户配置的数据,如登陆用户信息,日志,数据库文件等等,而在mysql5.7版本里面与mysql5.6版本里是有些不一样的,mysql5.6版本里已经默认有了data目录,而5.7是没有的,那么我们怎么办?
查了下资料,大部分都说把mysql5.6的data复制一份给5.7里,额。。。感觉有点不靠谱啊,继续找,终于发现了在mysql5.7里提供了一个命令来一件生成data这个目录
mysqld --initialize-insecure --user=mysql
那么好,我们就是用这个命令看下
-------------------
好了,到了这步后来启动mysql服务
net start mysql
恩,启动成功了... 执行完上面命令后,MySQL会自动新建一个data文件夹,并且新建好默认数据库,登录的用户名为root,密码为空
至此,mysql服务已经启动成功了
卸载mysql,可跳过
1.停止mysql服务
net stop mysql
(强制停止mysql服务 taskkill /f /im mysqld.exe )
2.卸载服务
mysqld --remove
3.彻底删除服务
sc delect mysql.exe
mysql5.7 登陆修改root密码
新安装的mysql是没有密码的,而忘记密码可以使用命令来跳过密码检测
1.新安装的mysql无密码登陆和修改:
进入mysql的bin目录
mysql -u root -p
在输入密码行处直接回车就登陆mysql了
查看数据库
show databases;
选择需要操作的数据库
use mysql;
然后我们直接设置mysql的密码
set password = password('7758258');
更新完后刷新权限表,使密码生效
flush privileges;
密码已更新,退出当前,重新使用密码登陆
quit;
2.忘记密码的情况找回密码
极端的方法是删除data目录重新生成,这种方式不推荐,因为这种方式也能删除数据库或其他重要数据
我们需要优雅的修改mysql的密码,那么我们需要:
暂停mysql服务
net stop MySQL
跳过密码检测:
mysqld --skip-grant-tables
然后此cmd窗口不动,以管理员身份重新打开另一个cmd,转到mysql下的bin目录下
输入:mysql -u root
直接进入到mysql了
然后直接修改密码(注意,mysql5.7的密码字段是authentication_stirng ,而5.6版本是password)
5.7: update mysql.user set authentication_string=password('12567') where user ='root' and host ='localhost';
5.6(未测试):update mysql.user set password = password('12567') where user = 'root';
更新完后刷新权限表,使密码生效
flush privileges;
密码已更新,退出当前mysql和关闭另一个cmd,重新使用修改过的密码登陆
quit;
PS:修改密码不一定只有这种,还有其他方式,这里就多做解释了。
注:如果写得有问题,可以反馈哈,大部分资料都是从网上整理出来的
navicat premium for mysql 11 的(po)使(jie)用
等待编写。。