超详细!全避坑!macOS下的m芯片安装mysql并连接Navicat,解决Access denied for user ‘root‘@‘localhost‘ 及系统红绿状态跳

帖主在按照csdn上的帖子Macbook在配置mysql时总是不成功,下载下来的mysql在系统设置里总是变红绿色之间来回跳动,并无法连接Navicat进入mysql,修改了一天几乎把坑几乎全踩了,给各位参考。

首先,绝大部分教程都是在官网选择下arm或x86系列,再一步步点安装完成后还有很多其他的问题。然而根本不需要如此繁琐,在这里我们选用使用mac所带的brew工具进行下载安装。

brew安装及配置

Homebrew是macOS的包管理工具。首先,如果你还没有安装Homebrew,请按照以下步骤进行安装:

以下命令默认都在根目录进行,如不在请先cd ~到根目录

打开终端并运行以下命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh

如果不行考虑开T子,使用git进行安装

git clone https://github.com/Homebrew/brew ~/.brew

安装完成后,按照提示将Homebrew添加到你的路径中。通常,它会要求你运行以下命令:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)

更新Homebrew

brew update

通过brew安装MYSQL

在终端中运行以下命令来安装MySQL:

brew install mysql

安装完成后,启动MySQL服务:

brew services start mysql

注:在这里可能会出现报错

Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; /bin/launchctl bootstrap gui/501 /Users/jimmy/Library/LaunchAgents/homebrew.mxcl.mysql.plist exited with 5.

解决办法:
确保所有相关目录和文件的权限正确:

sudo chown -R $(whoami):admin /opt/homebrew/var/mysql
sudo chown -R $(whoami):admin /opt/homebrew/opt/mysql
sudo chown -R $(whoami):admin ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

手动启动MySQL服务,查看是否有更详细的错误信息:

/opt/homebrew/opt/mysql/bin/mysql.server start

或者对电脑进行重启后继续运行

brew services start mysql

如果都不行,别着急我们再进行下一步

配置MYSQL初始安全设置

安装完成后的初始设置
运行以下命令进行MySQL的初始安全设置:

mysql_secure_installation

这将启动MySQL的安全安装程序,以下是一些常见的问题和建议的答案:
首先进行设置密码。

Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

在mysql_secure_installation脚本开始时,系统会提示你输入当前root用户的密码。这是为了验证你有权进行安全设置。

Enter password for user root:

你输入当前的root用户密码并按回车。如果密码正确,脚本将继续。(首次安装没有密码随便输入一个强度高的密码)
脚本会询问你是否要更改root用户的密码:

Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

你选择y并按回车,表示你希望更改root用户的密码。
系统会提示你输入新密码并再次确认:
(此时应该输入自己准备设置的root密码,强度要求:长度大于8,有大小写字母,特殊符号,数字)

New password:
Re-enter new password:

你需要输入两次相同的新密码。如果两次输入的密码一致,系统将更新root用户的密码。

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

解释: 这一步告诉你,提供的密码强度为100(通常是满分),这是一个很高的密码强度分数。然后它会询问你是否要继续使用这个密码。

建议: 如果密码强度高,可以继续使用这个密码。选择 y 继续。
下边配置需要特别注意!!!
除了最后一个,我们千万都不要选y,一路n或者其他拒绝符号!!!

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : n
Success.

解释:MySQL 默认安装时包含匿名用户,允许任何人无需用户名和密码即可登录 MySQL。这是为了测试和方便安装,但在生产环境中是不安全的。

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
... skipping.

解释: 默认情况下,root 用户只能从本地主机(localhost)登录。这可以防止通过网络进行暴力破解攻击尝试。选择 n 表示允许 root 用户远程登录。

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n
... skipping.

解释: MySQL 默认安装时包含一个名为 test 的数据库,任何人都可以访问。这是为了测试用途,但在生产环境中不安全。选择 n 表示保留测试数据库。

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
... skipping.

解释: 重新加载权限表可以确保所有更改立即生效。选择 n 表示暂不重新加载权限表。

验证MySQL安装

在终端中运行以下命令,使用root用户登录MySQL:

mysql -u root -p

你会被提示输入刚才设置的root用户密码,输入正确密码后将进入MySQL命令行界面。

在这里插入图片描述

配置MYSQL环境变量

为了便于使用,你可以将MySQL的可执行文件路径添加到你的环境变量中。

编辑你的Shell配置文件(如/.zshrc或/.bash_profile):

nano ~/.zshrc

在文件末尾添加:

export PATH=/opt/homebrew/opt/mysql/bin:$PATH

使用Control+O保存,Control+X退出
保存并退出编辑器,然后重新加载配置文件:

source ~/.zshrc

设置MySQL为开机自启动

brew services start mysql

连接Navicat

我满心欢喜的打开Navicat输入完账号密码却弹出来报错信息

2002 - Can’t connect to server on ‘127.0.0.1’ (36)

解决方法:
首先,确保MySQL服务正在运行:

brew services list

如果使用这行命令又报错

Name Status User File
mysql error 256 ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

继续修改

有时候MySQL socket文件会导致连接问题。删除现有的socket文件:

sudo rm /tmp/mysql.soc

确保MySQL配置文件(my.cnf)中的配置正确。编辑配置文件:

sudo nano /opt/homebrew/etc/my.cnf

确保配置文件包含以下内容:

[mysqld]
bind-address = 127.0.0.1
socket = /tmp/mysql.sock

重启服务

brew services restart mysql

确保MySQL数据目录的权限正确。修复权限问题:

sudo chown -R $(whoami):admin /opt/homebrew/var/mysql

如果执行上述步骤仍然无法运行,请继续看下一步。
查找并终止现有的mysqld进程
首先,查找所有正在运行的mysqld进程:

ps aux | grep mysqld

这个命令会列出所有与mysqld相关的进程。找到进程ID(PID)后,终止这些进程:

sudo kill -9 PID

有时候MySQL socket文件会导致连接问题。删除现有的socket文件:

sudo rm /tmp/mysql.sock

保存并退出后,重新启动MySQL服务:

brew services restart mysql

确保MySQL服务已经成功启动:

brew services list

MySQL应该显示为started状态。

在终端中尝试连接MySQL,确保连接没有问题:

/opt/homebrew/opt/mysql/bin/mysql -u root -p -h 127.0.0.1

如果还有问题请重启电脑,并重新执行命令启动MYSQL

brew services start mysql

如果这些都没问题了,恭喜你Navicat连接成功至此全部结束!
在这里插入图片描述

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Navicat报错提示"1045 - Access denied for user 'root@localhost' (using password: YES)"表示无法使用提供的密码访问MySQL数据库root用户。此错误可能有以下几个原因: 1. 密码错误:请确保您输入的密码是正确的。在MySQL 8.0之前的版本,可以使用以下命令修改密码:update mysql.user set authentication_string=password("新密码") where user="root";。而在MySQL 8.0及更高版本,可以使用以下命令修改密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; 2. 权限问题:请确保root用户具有足够的权限来连接MySQL数据库。您可以使用GRANT语句为root用户授予必要的权限。 3. 主机限制:请检查MySQL配置文件中是否限制了root用户的访问主机。您可以尝试使用以下命令修改root用户的主机限制:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES; 请根据具体情况检查和解决上述问题,并确保您的密码和权限设置正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Navicat报错:1045-Access denied for user root@localhost(using passwordYES)](https://blog.csdn.net/m0_67400973/article/details/126077117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql-8.0.20-macos10.15-x86_64.tar.gz](https://download.csdn.net/download/long4512524/12427861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jimmy Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值