使用 Homebrew for mac 安装 MySQL 和配置远程登录 - 2. 安装
没有安装brew的,可以参考mac安装Homebrew
要通过 Homebrew 安装并启动 MySQL,以及设置远程登录,可以按照以下步骤进行:
- **安装 MySQL:**首先,在终端中执行以下命令来安装 MySQL:
brew install mysql
- **启动 MySQL 服务:**安装完成后,你可以使用以下命令启动 MySQL 服务:
brew services start mysql
- 设置 root 密码:
运行以下命令启动 MySQL 安全脚本,该脚本将帮助你设置 root 密码和其他安全选项:
mysql_secure_installation
- 允许root远程登录:
首先,使用以下命令以 root 用户身份登录 MySQL:
mysql -u root -p
然后输入你之前设置的 root 密码。
接着,使用以下 SQL 命令允许 root 用户从远程主机登录:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
将 ‘your_password’ 替换为你想要设置的密码。
注意:
从 MySQL 8 开始,您不再可以(隐式)使用该GRANT命令创建用户。请改用CREATE USER,后跟GRANT语句:
CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘your_password’;
GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
- **设置远程登录:**默认情况下,MySQL 不允许远程登录。要允许远程登录,需要进行以下步骤:
- **编辑 MySQL 配置文件:**使用文本编辑器打开 MySQL 的配置文件
my.cnf
,该文件通常位于/usr/local/etc/my.cnf
或/etc/my.cnf
。如果不存在,可以根据需要创建该文件。
sudo open -e /usr/local/etc/my.cnf
- **添加配置:**在文件中添加以下内容,表示允许远程登录:
[mysqld]
bind-address = 0.0.0.0
这会将 MySQL 绑定到所有可用的 IP 地址,允许远程访问。
- **重启 MySQL 服务:**保存并关闭文件后,重启 MySQL 服务以应用配置更改:
brew services restart mysql
-
**登录 MySQL 并创建远程用户:**现在,你可以使用 MySQL 客户端登录到 MySQL 服务器,并创建一个允许远程访问的用户。
- 首先,使用以下命令登录到 MySQL 服务器,你将需要输入你的 MySQL root 用户密码:
mysql -u root -p
- 登录成功后,可以执行以下 SQL 命令创建一个新的用户,例如
remote_user
,并授予该用户远程登录和所有权限:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
将
'your_password'
替换为你想要设置的密码。报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因:自定义密码太简单,出现了不符合密码策略的问题
查看mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
如果遇到
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改策略,及密码长度
set global validate_password.policy=0;
set global validate_password.length=1;
validate_password_policy取值
0 or LOW 只验证长度
1 or MEDIUM 验证长度、数字、大小写、特殊字符
2 or STRONG 验证长度、数字、大小写、特殊字符、字典文件
报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded
错误信息:
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 0x0002): tried: '/usr/local/lib/plugin/caching_sha2_password.so' (no such file), '/usr/local/Cellar/mysql/8.3.0_1/lib/plugin/caching_sha2_password.so' (no such file)
原因:
- 不是客户端Navicat的原因,是MySQL兼容问题,需要修改数据库的认证方式
- MySQL8.0版本默认的认证方式是caching_sha2_password
- MySQL5.7版本则为mysql_native_password。
- 解决办法1
打开系统偏好设置,找到mysql,点击Initialize Database。
输入你的密码。
选择‘Use legacy password‘。
重启mysql服务。
重新使用Navicat链接数据库 - 解决办法2
用终端连接MySQL,然后执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
- 解决办法3
修改my.cnf 文件,再重启MySQL:
sudo open -e /usr/local/etc/my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
- **验证远程登录:**现在,你应该能够从远程计算机使用 MySQL 客户端连接到你的 MySQL 服务器。你可以使用以下命令进行测试:
mysql -u remote_user -p -h your_mysql_server_ip
替换 'your_mysql_server_ip'
为你的 MySQL 服务器的 IP 地址。输入远程用户的密码,如果一切设置正确,你应该能够成功登录到 MySQL 服务器。
这样,你就完成了通过 Homebrew 安装并设置远程登录到 MySQL 服务器的过程。