数据库之mac上mysql root密码忘记或权限错误的解决办法

2017-11-02 12:53:07来源:https://juejin.im/post/59f6f7166fb9a045000254d0作者:稀土掘金人点击

分享

最近想在mac上装一个mysq,可是各种坑,网上搜了N多,就是不行,最后在CSDN上一位叫chris-gardner的博客里找到了结果(侵删)


下载mysql的安装包,安装完成后,它会随机的给你一个本地root的密码,但是臭长臭难记,root@localhost:后面的就是密码,太特么恶心了



在终端执行mysql -uroot -p后是这样的:



输入进去的密码压根就不显示,输入N多遍,老是提示


ERROR 1045: Access denied for user: 'root@localhost' (Using
password: NO)12

或者


ERROR 1045: Access denied for user: 'root@localhost' (Using
password: YES)12

解决上面错误的方法之一就是重新设置我们的mysql的root密码。


1.在终端输入下面命令关闭正在运行的mysql,如果msyql没有运行可以跳过,需要输入mysql的密码。如果mysql密码忘记了,可以直接通过系统偏好设置里面关闭!


/usr/local/mysql/bin/mysqladmin -u root -p shutdown1

系统便好设置关闭如图



2.进入mysql的bin目录执行如下命令


$ cd /usr/local/mysql/bin
$ sudo su12

之后输入管理员密码会看到


sh-3.2# 1

之后我们输入下面命令以安全模式运行mysql


sh-3.2#./mysqld_safe --skip-grant-tables &1

运行结束我们打开mac的系统偏好设置,选择msyql,我们会发现Mysql重新运行了如图



回到终端点击Command + N 重新打开一个终端


输入


mysql -u -root1

这时候我们不需要密码就能进入mysql


Your MySQL connection id is 57
Server version: 5.7.10 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql>123456789101112

注意:这里有的时候会进不来,这个时候可以尝试重启mac电脑,具体原因我也不清楚。


3.修改root密码


首先执行下面命令为了能够修改任意的密码


mysql> FLUSH PRIVILEGES;1

之后执行修改密码的SQL语句,这里的qsd19001008可以替换你自己想要修改的密码


mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('qsd19001008');1

如果你的子帐号可以登录msyql你也可以尝试下面的方法


mysql>UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';1


mysql>USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';123

又或者


mysql>USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';123

最后刷新


FLUSH PRIVILEGES;1

Control+D推出mysql,然后关闭安全模式数据库,这里要输入你刚才设置数据密码就好啦


/usr/local/mysql/bin/mysqladmin -u root -p shutdown1

到目前为止你就找回了你mysql的密码啦


正常启动mysql数据库,输入刚才设置的密码qsd19001008


/usr/local/mysql/share/mysql.server start1

如果上面的命令不执行,同理到系统偏好里开启mysql服务器。


最后执行下面的终端命令,然后输入刚才设置的密码qsd19001008我们就可以正常进入mysql啦


$mysql -u root -p

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台