mysql数据库出现无法登录(ERROR 1045 ),预防和解决及系列问题解决方法。

 
一 .当在windows下使用mysql数据库时,出现无法登录的现象,需要修改mysql数据库的roo密码时,我们可以使用一下两种方法。
1.
(1)关闭mysql服务。然后在bin目录下使用cmd运行命令mysqld.exe --skip-grant-tables;
(2)使用新的cmd命令,打开mysql.exe 免密码登录。
(3)使用命令use mysql,切换到MySQL数据库
    update user set password=password('123456') where user='root';   
    设置密码为123456
(4)flush privileges;  刷新权限
(5)exit  退出
2.找到my.ini文件,记事本打开,在mysqld下面添加skip-grant-tables,然后重启mysql服务,在使用mysql.exe免密码登录。其他步骤如上。
 
flush privileges 
flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL 用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再 登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
 
二.关闭或者重启mysql服务的方法有两种:
1.右击我的电脑(计算机),点击管理,找到服务和应用程序,打开,服务,找到mysql服务,右键,有关闭,启动和重启。
2.使用net start 命令,打开cmd,使用命令:net start mysql  打开服务,使用命令:net stop mysql  关闭服务。
 
当使用net start mysql或者net stop mysql命令时出现:

显示服务名无效

有以下两种解决方法:
使用以下方法时,需要切换到管理员身份!检测当前是否为Administrator身份,若不是,以下步骤:
开始->关机边上小三角->切换用户,选择administrator,若没有administrator用户。右击 我的电脑(计算机)点击管理,选择本地用户和组,找到Administrator,双击,找到一下界面:
将账户已禁用前面的勾去掉。应用,然后重复,开始->关机边上小三角->切换用户,切换成Administrator用户。进行以下操作。(建议方案二)
 
方案一:cd到mysql 目录下 输入命令 mysqld –initialize,初始化后mysql才有data文件夹。
方案二:打开cmd,输入mysqld.exe -install   
                Service successfully installed.
 
–initialize会重置root密码,并生成一个随机的临时密码,下次登录需要用这个密码。
按照文档说,这个临时密码会显示在cmd窗口,但并没有。原因在于当初初始化时应该用 –console选项来输出,在没有输出的情况下,这个密码会被记录到log中。于是开始看log存在哪里。发现 mysql的log文件是二进制的,而且有很多log文件。
最终解决办法:
新建一个txt文件,里面写上修改密码的SQL语句。
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;
然后启动mysql服务器
mysqld –init-file=path:\initfileNamealerty
执行后,即可修改root密码。 
 
三.mysql8.0出现无法登录问题,使用--skip-grant-tables时,报错且无法使用。
我使用的方式有下面两种:
1.
(1)新建一个txt文件,里面写上修改密码的SQL语句。
        ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;
(2)启动mysql服务器
        mysqld –init-file=path:\initfileNamealerty
        执行后,即可修改root密码。 
2. 
(1)停止MySQL服务
   cmd命令:net stop mysql
(2)打开my.ini文件
    加入:ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; 引号里面的的信息为账号和密码保存;
(3)进入MySQL安装的bin目录
   执行:mysqld --defaults-file="路径\my.ini"  
(4)等待执行过后重新打开my.ini 去掉刚才添加的内容保存
(5)重启MySQL
    net start mysql
    使用新密码 12345678 登录即可
 
 
 
 
 
posted @ 2018-10-09 16:14  yikuaiqian  阅读(9715)  评论(0编辑  收藏  举报