Mac下解决mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

最近在鼓捣着开发Django,然后环境如下:

  1. Python 3.7.3
  2. Django 3.0.3
  3. MySQL 5.7.26

Python连接MySQL数据库需要安装pymysql模块,然后安装完这个模块之后接着需要安装一个msqlclient的模块,但就在这个模块的安装过程中出现了错误

OSError: mysql_config not found
Command "python setup.py egg_info" failed with error code 1 in 
/private/var/folders/jf/qymg1tp13sb434xzh5knyl6r0000gn/T/pip-build-NlZGvS/mysqlclient/

解决方法是先行安装mysql-connector-c

brew install mysql-connector-c

接着找到如下文件

/usr/local/bin/mysql_config

修改内容如下:

# origin code

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

# change to 

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

修改完成之后再行安装mysqlclient模块即可成功安装。

代码的世界哪有一帆风顺的

接着我发现我terminal中的输入mysql表示command not found
Navicat中连接数据库出现ERROR 1045(28000):Access denied for user 'root'@'localhost'(using password:YES)的提示,瞬间黑人问号,之前是好的啊。
首先我解决terminal中的mysql命令提示找不到的问题,试了很多办法,目前成功的是


alias mysql=/usr/local/mysql/bin/mysql

解决这个问题之后就是解决这个1045了

第一步

在系统偏好设置中停止运行MySQL

第二步

打开终端,输入

cd /usr/lcoal/mysql/bin
sudo su

然后命令行变成以sh-3.2#开头,接着输入命令

./mysqld_safe --skip-grant-tables &

成功进入会出现如下提示

sh-3.2# Logging to '/usr/local/mysql-5.7.26-macos10.14-x86_64/data/fangyongdeMacBook-
Air.local.err'.
2020-02-07T02:57:06.6NZ mysqld_safe Starting mysqld daemon with databases from
/usr/local/mysql-5.7.26-macos10.14-x86_64/data

第三步

新建一个终端,输入如下命令

/usr/local/mysql/bin/mysql

出现提示如下

Last login: Fri Feb  7 10:45:28 on ttys002
fangyongdeMacBook-Air:~ fangyong$ /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, 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>

接着输入

mysql>usr mysql;

选择数据库后输入

mysql>update user set authentication_string=password('你的新密码') where Host='localhost' and
User='root';

执行完成退出数据库,之前那个terminal中按control+c中断即可
问题解决!
以上解决方法中有一些是从其他网友那看来的,附上链接,感谢他们的解决方法
解决连接MySQL提示1045错误的方法

数据库MacOS