Mysql提示Access denied for user 'root'@'localhost' (using password: NO)和Can’t connect to local MySQL server through socket '/tmp/mysql.sock'

1.首先安装完Mysql之后,我们为了操作方便,需要将mysql路径加入环境变量中。

  • 打开终端,输入:cd ~,会进入~文件夹;
  • 然后输入:touch .bash_profile,回车执行后;
  • 再输入:open -e .bash_profile,会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这应该是一个空白文档)。如果有内容,请在结束符前输入,如果没有内容,请直接输入如下语句:
    export PATH=${PATH}:/usr/local/mysql/bin
    然后,保存,退出TextEdit(一定是退出),关闭终端并退出。

经过上面三个步骤就可以配置好mysql的环境变量,然后我们可以更便捷的使用mysql命令。

Mysql在5.7.6之后的版本去掉了在本地文件/root/.mysql_secret中生成初始密码的机制,所以在安装最新版的5.7.16过程中踩了坑.一直提示如下错误:

Access denied for user 'root'@'localhost' (using password: NO)

新版本要解决这个问题,步骤大致如下:

  • 在系统偏好设置中关闭mysql服务
  • 用安全模式启动服务:sudo mysqld_safe --skip-grant-tables
  • mysql -u root 登录,因为安全模式下,所以无需输入密码
  • 登录后进行密码修改(密码修改这部分mysql做了很大的改动)
use mysql
select * from user;
update mysql.user set authentication_string=password('root') where user='root';
update mysql.user set Host='localhost' where user='root';
flush privileges;

密码字段已经不是之前的Password,新版本改为了现在的authentication_string字段
如果不按照这个步骤会报错:Access denied for user 'root'@'localhost' (using password: NO)
最后就可以用 mysql -uroot -p 然后输入上面设置的密码登录进mysql了
官方对于重置密码的解释

2.Mac下mysql出现Can’t connect to local MySQL server through socket '/tmp/mysql.sock'错误,解决如下:

$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

然后再启动mysql

$ mysql.server start

你可能感兴趣的:(Mysql提示Access denied for user 'root'@'localhost' (using password: NO)和Can’t connect to local MySQL server through socket '/tmp/mysql.sock')