前言:不知道是不是前几天瞎鼓捣安装了一个ODBC数据源的原因,今天我想去运行项目的时候发现mysql突然打不开了,没办法,只能重新安装一个,因为之前安装时我就已经写好了安装步骤PDF文档,所以这一次安装就轻车熟路,我觉得应该还有人需要这一份教程,所以我就写了这一篇文章,希望可以帮助到安装mysql有困难的同学!
目录
一、下载
二、安装
2.1 解压
2.2 配置my.ini
2.3 配置环境变量
2.4 安装(命令行操作)
2.4.1 到mysql解压目录下
2.4.2 初始化
2.4.3 安装mysql服务
2.4.4 启动服务
2.4.5 登录mysql
2.4.6 修改mysql密码
三、其它操作
3.1、停止服务
3.2、卸载Mysql
3.3、安装时报错却找不到原因时
3.4 其它常见问题
问题:忘记密码,无法登录
解决方法:
官网:mysql官网下载
在官网选择ZIP Archive结尾的下载
最新版已经到8.0.28,而我之前安装的是8.0.27,不过我觉得问题不大,如过有需要8.0.27版本的可以复制下方**百度网盘**链接:
链接:https://pan.baidu.com/s/14omcdL9wTTiMjWWkB9PAOw?pwd=jria
提取码:jria
将文件解压到你想存放的目录,我的是:D:MySQL
在含有bin的那一级目录下创建一份my.ini文件,打开输入以下代码:
[mysqld]#Mysql的解压地址--根目录basedir ="D:MySQLmysql-8.0.27-winx64"datadir ="D:MySQLmysql-8.0.27-winx64data"port=3306server_id =10character-set-server=gbkcharacter_set_filesystem=gbk[client]port=3306default-character-set=gbk[mysqld_safe]timezone="CST"[mysql]default-character-set=utf8
我的是win10,具体操作为:“此电脑”->高级系统设置->环境变量->选择path->编辑->在末尾处添加 Mysql解压出来的bin目录(我的是D:MySQLmysql-8.0.27-winx64mysql-8.0.27-winx64in)这里以你们自己的解压路径为准!
管理员权限运行cmd,到mysql解压路径的bin目录下:(一定要用管理员权限)
在上面的路径下,输入:mysqld --initialize,按回车执行。执行成功后mysql的解压目录下会出现data 的文件夹,如果原本就有的话,这个文件夹会被覆盖重新创建。
mysqld --initialize
如果没有创建,则在cmd里面输入:【mysqld --initialize-insecure --user=mysql】,按回车执行(看到网 上说的,我并没有执行过这个,因为我已经创建成功了)
还是cmd里面在bin目录下,输入:mysqld -install Mysql,回车,创建mysql服务
mysqld -install Mysql
出现Service successfully installed 时说明服务已经安装成功。到这一步,mysql免安装版已经安装成功。
管理员权限运行cmd(这里可以不在mysql解压路径的bin目录下了),输入:net start Mysql,按回车执行
net start Mysql
出现“服务已经启动成功”这样的字样说明已经启动成功
在刚刚的cmd里面,输入:mysql -u root -p,这时会提示你输入密码 ,按道理来说它是会给你创建一个临时密码,好像是在日志里面,但是我直接回车也进去了,如果你找不到临时密码,而且空密码进不去的话,请看后面的常见问题解决方法!
出现help等字样说明已经连接成功!!!
进入mysql,输入:set password for root@localhost = password(‘123456’);然后回车执行(记住一定 要有分号,不然mysql不会执行这条语句),括号里面的单引号里面就是密码
set password for root@localhost = password(‘你要设置的密码’);
管理员权限cmd,输入:net stop Mysql,按回车执行
直接删除服务就可以了。管理员权限cmd,输入:sc delete Mysql,回车执行
查看日志,查看mysql解压的目录,data目录下面的.err结尾的文件,里面记录着操作的日志。
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
第一步:关闭Mysql服务
首先先停止mysql服务。可通过 net stop mysql 或者任务管理器中关闭。(以管理员权限操作!)
第二步:跳过Mysql密码验证
进入命令提示符(管理员登陆)操作,进入mysql目录中bin文件夹下,mysql8.0与其他版本不同的地 方在于无法直接使用mysqld --skip-grant-tables来跳过密码登录。
在这我们使用mysqld -console --skip-grant-tables --shared-memory来跳过权限验证。
输入执行后没有反馈,新开一个管理员窗口重新执行。
进入目录后,确保自己已经关闭了Mysql的服务: net stop mysql
关闭Mysql服务之后,继续在D:mysql-8.0.19-winx64in目录下进行操作: 输入
mysqld --console --skip-grant-tables --shared-memory
在输入这行代码之后,如下显示,我们就已经成功跳过Mysql的密码登录了:
第三步:无密码方式进入Mysql
在上述步骤之后,再打开一个管理员模式运行的cmd.exe,进入mysql下的bin目录后,直接登录mysql 不需要通过 net start mysql 打开mysql服务 在命令行中输入以下代码
mysql -u root -p
如图:此时会显示让你输入密码,直接回车,就可以成功连接Mysql。
第四步:将登陆密码设置为空
输入代码,将密码设置为空(此时还不能直接修改密码,必须先设置为空,否则会报错)
use mysql; (使用mysql数据表)update user set authentication_string='' where user='root';(将密码置为空)quit; (然后退出Mysql)
操作如图:
第五步:更改自己的登陆密码
这里分为两个部分:
1.关闭前面打开的cmd窗口(一定要关闭!)
2.在最新打开的窗口中输入代码;
net stop mysql(关闭mysql服务,虽然会显示没有开启服务,但是以防万一)net start mysql(再打开mysql服务)
(这里不要嫌麻烦,如果上一个mysql服务没关闭,我们依旧是无密码登陆)
接着输入:
mysql -u root -p(此处会显示输入密码,直接回车就好了,第四步我们已经将他置为空了)ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';(更改密码)
最后一步:验证密码是否修改成功
quit(退出mysql)mysql -u root -p(输入新密码,再次登录,跟着步骤一步步输入的话,新密码是就是你设置的密码)
修改成功!!!