MySql安装后的使用问题2

白天MySql用的好好的,晚上就登不上去了,net start mysql 显示无法启动,没有任何错误。

网上给出建议:

先安装mysqld -install 。然后 删除mysql目录下的data文件夹,但是我就没有这玩意,所以直接下一步:mysqld --initialize。神奇的data文件夹出现了。

之后,net start mysql,启动服务。mysql -uroot -p 不管输不输密码都无法进入mysql

之后使用之前收集的解决办法  《MySql安装后的使用问题》,一轮操作下来,之前明明很好用的,又失效了。

后面,发现了真正的高人的答案:

    首先明确一点。mysql的配置文件my-default.ini,mysql5.7版本已经改为了my.ini,并且在C盘的隐藏文件夹programdata下:C:\ProgramData\MySQL\MySQL Server 5.7。

1.配置环境变量

我的电脑->属性->高级->环境变量->path

如:C:\Program Files\MySQL\MySQL Server 5.6\bin 

注意是追加,不要覆盖

2.修改my-default.ini

在其中修改或添加配置: 

[mysqld] 

basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目录) 

datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目录\data)    //这里我没有该,使用原本默认的programdata下的文件夹路径。

3.以管理员身份运行cmd(win10右键左下角开始按钮选择以管理员身份运行cmd即可

以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),

输入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)

输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!) 

安装成功

4.运行mysqld  --initialize(标题问题所在,若没有init则不存在data目录,自然无法启动成功)

5.安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!

服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过),登录成功!

 

!!!!!!!!下面是重点!!!!!!!!!!!!!!!!

追加内容:

在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:

016-02-25T15:09:43.033062Z 1 [Note] A temporary password is generated for root@localhost: >mso<k70mrWe

从这里我知道了,《MySql安装后的使用问题》一问所提到的问题,原来是因为root有随机的密码。这个文件在一个.err文件下。我找到的是在:C:\Program Files\MySQL\MySQL Server 5.7\data下的一个名为SC-201804021324.err的文件。其中第六行:2018-07-13T13:41:17.201803Z 1 [Note] A temporary password is generated for root@localhost: phW34ok9xS(#

冒号后就是随机密码。这玩意貌似会随着mysqld -initialize生成data文件夹而变化。

总只,使用mysql -uroot -p 回车后输入密码:phW34ok9xS(#,就进入了mysql。然后要求你改密码:

方法1: 用SET PASSWORD命令

?
1
2
MySQL -u root
  mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ( 'newpass' );

方法2:用mysqladmin

?
1
mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

?
1
mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

?
1
2
3
4
mysql -u root
 mysql> use mysql;
 mysql> UPDATE user SET Password = PASSWORD ( 'newpass' ) WHERE user = 'root' ;
 mysql> FLUSH PRIVILEGES ;

在丢失root密码的时候,可以这样

?
1
2
3
4
mysqld_safe --skip-grant-tables&
  mysql -u root mysql
  mysql> UPDATE user SET password = PASSWORD ( "new password" ) WHERE user = 'root' ;
  mysql> FLUSH PRIVILEGES ;
我使用了方法一就改好了密码 (偷偷记一下root密码:123456)。一切OK。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值