mac用Homebrew安装MySQL并配置远程登录

1. 简介

MySQL 是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,后被 Oracle 公司收购。MySQL 使用 SQL(Structured Query Language)作为查询语言,并提供了强大的功能和性能,被广泛应用于各种 Web 应用程序和企业级应用程序中。

以下是 MySQL 的一些主要特点和优势:

  1. **开源和免费:**MySQL 是开源软件,可以免费使用,并且有一个活跃的开源社区支持和维护它。

  2. **跨平台:**MySQL 可以在多种操作系统上运行,包括 Linux、Windows、macOS 等。

  3. **高性能:**MySQL 是一个高性能的数据库系统,能够处理大量的并发连接和请求,并且具有优化查询和存储引擎等功能。

  4. **可靠性和稳定性:**MySQL 是一个稳定可靠的数据库系统,拥有成熟的架构和可靠的数据存储机制,能够保证数据的安全性和完整性。

  5. **可扩展性:**MySQL 支持水平和垂直扩展,可以轻松地扩展以满足不同规模和需求的应用程序。

  6. **丰富的功能:**MySQL 提供了丰富的功能和工具,包括事务处理、存储过程、触发器、索引、备份和恢复等功能,能够满足各种复杂的业务需求。

  7. **广泛的应用:**MySQL 被广泛应用于 Web 开发、企业级应用程序、云计算、大数据等领域,是世界上最流行的数据库管理系统之一。

总的来说,MySQL 是一个强大、稳定、可靠且易于使用的关系型数据库管理系统,适用于各种规模和类型的应用程序开发。

2. 安装

没有安装brew的,可以参考mac安装Homebrew
要通过 Homebrew 安装并启动 MySQL,以及设置远程登录,可以按照以下步骤进行:

  1. **安装 MySQL:**首先,在终端中执行以下命令来安装 MySQL:
brew install mysql
  1. **启动 MySQL 服务:**安装完成后,你可以使用以下命令启动 MySQL 服务:
brew services start mysql
  1. 设置 root 密码:
    运行以下命令启动 MySQL 安全脚本,该脚本将帮助你设置 root 密码和其他安全选项:
mysql_secure_installation
  1. 允许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;

  1. **设置远程登录:**默认情况下,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
  1. **登录 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. 解决办法1
    打开系统偏好设置,找到mysql,点击Initialize Database。
    输入你的密码。
    选择‘Use legacy password‘。
    重启mysql服务。
    重新使用Navicat链接数据库
  2. 解决办法2
    用终端连接MySQL,然后执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
  1. 解决办法3
    修改my.cnf 文件,再重启MySQL:
sudo open -e /usr/local/etc/my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
  1. **验证远程登录:**现在,你应该能够从远程计算机使用 MySQL 客户端连接到你的 MySQL 服务器。你可以使用以下命令进行测试:
mysql -u remote_user -p -h your_mysql_server_ip

替换 'your_mysql_server_ip' 为你的 MySQL 服务器的 IP 地址。输入远程用户的密码,如果一切设置正确,你应该能够成功登录到 MySQL 服务器。

这样,你就完成了通过 Homebrew 安装并设置远程登录到 MySQL 服务器的过程。

3. 卸载

要通过 Homebrew 卸载 MySQL,你可以执行以下步骤:

  1. **停止 MySQL 服务:**首先,确保停止 MySQL 服务。在终端中执行以下命令:
brew services stop mysql
  1. **卸载 MySQL:**执行以下命令来卸载 MySQL:
brew uninstall mysql
  1. **删除 MySQL 数据文件和配置文件:**MySQL 的数据文件通常存储在 /usr/local/var/mysql/ 目录下。你可以手动删除该目录及其内容,以清除 MySQL 数据文件:
rm -rf /usr/local/var/mysql/
  1. **删除配置文件:**删除 MySQL 的配置文件,以及其他可能残留的文件:
rm -rf /etc/my.cnf
  1. **删除遗留文件:**运行以下命令,删除可能还残留在系统中的 MySQL 相关文件:
rm -rf ~/Library/Caches/Homebrew/mysql*
rm -rf ~/Library/Logs/Homebrew/mysql*
  1. **删除 MySQL 用户和组:**如果你创建了 MySQL 用户和组,你也可以将其删除:
sudo dscl . -delete "/Users/_mysql"
sudo dscl . -delete "/Groups/_mysql"

完成上述步骤后,MySQL 将被完全从你的 macOS 系统中卸载。请确保在删除任何文件之前备份重要数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/584660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发面试真题——面向对象

鸿蒙开发面向对象的面试题是近年来在软件开发领域中备受关注的话题。作为一种新兴的操作系统,鸿蒙系统的开发者需要具备扎实的面向对象编程知识和丰富的开发经验。在面试中,面试官常常会通过一系列的问题来考察面试者对于鸿蒙开发面向对象的理解和应用能…

ES 深度分页问题及针对不同需求下的解决方案[ES系列] - 第509篇

历史文章(文章累计500) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

春游江淮 请来池州 | 五一池州文旅活动时间表大集合,都在这里

快到五一,想好去哪里玩吗?来池州,各景区缤纷活动登场, 速速划重点、敲黑板! 五一放大招!到底怎么玩?文旅活动、阅读推广 非遗展示......现在都已经为你整理好啦!这份超齐全的 五一假期文旅活动时间表,助力您玩转各景区,整个假期嗨不停~ 旅游惠民活动 表演类活动…

salesforce 如何访问lwc组件

访问lwc有哪些途径呢? Action ButtonTabAura use lwc(拓展)如何区分是新建页面还是编辑页面 Action Button xml文件中要配置tab<?xml version"1.0" encoding"UTF-8"?> <LightningComponentBundle xmlns"http://soap.sforce.com/2006/04/…

使用fitten code插件(vscode),替换通义千问,识别需求中的输入输出

今天我们介绍一个工具,具体介绍可以参考我的这篇文章的介绍,支持vs code 插件,Fitten Code是一款由非十科技开发的AI代码助手,旨在通过大模型驱动来提升编程效率和体验-免费神器-CSDN博客https://blog.csdn.net/lijigang100/article/details/137833223?spm=1001.2014.3001…

MySQL怎么看死锁记录

这个结果分成三部分&#xff1a; (1) TRANSACTION&#xff0c;是第一个事务的信息&#xff1b; (2) TRANSACTION&#xff0c;是第二个事务的信息&#xff1b; (3)WE ROLL BACK TRANSACTION (1)&#xff0c;是最终的处理结果&#xff0c;表示回滚了第一个事务。 第一个事务的信…

文件批量重命名:高效添加前缀顺序编号,让文件整理变得轻松简单

电脑中的文件数量日益增长&#xff0c;如何有效地管理和整理这些文件成为了许多人的难题。你是否曾在大量的文件中迷失&#xff0c;寻找某个特定文件时感到困惑和疲惫&#xff1f;现在&#xff0c;我们为您带来了一款全新的文件改名工具——"一键式文件改名神器"&…

计算机复试项目:SpringCloud实战高并发微服务架构设计

秒杀购物商城--环境搭建 秒杀购物商城基础服务组件--详细介绍 秒杀购物商城基础服务--权限中心 秒杀购物商城业务服务--收货地址 秒杀购物商城业务服务--秒杀活动服务 秒杀购物商城--购物车的功能设计及分析 秒杀购物商城基础服务-用户中心 秒杀购物商城业务服务--商品中…

通过共享网络使树莓派4联网

一、问题 尝试配置/boot/dhcpcd.conf文件无效&#xff0c;wifi依然无法联网&#xff0c;且通过桌面选择wifi输入密码后同样无法联网&#xff1b; 二、环境 1、可以通过网线连接电脑&#xff0c;并且可以连接串口&#xff1b; 2、可以通过静态地址通过网线访问树莓派ssh端口&…

misc学习

一.知识点 1.BMP文件 BMP文件主要有四部分组成&#xff0c;位图头、位图信息、调色板、位图数据。 bmp文件头(bmp file header)&#xff1a;提供文件的格式、大小等信息 位图信息头(bitmap information)&#xff1a;提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息…

[C++][算法基础]整数划分(统计动态规划)

一个正整数 &#x1d45b; 可以表示成若干个正整数之和&#xff0c;形如&#xff1a;&#x1d45b;&#x1d45b;1&#x1d45b;2…&#x1d45b;&#x1d458;&#xff0c;其中 &#x1d45b;1≥&#x1d45b;2≥…≥&#x1d45b;&#x1d458;,&#x1d458;≥1。 我们将这…

SDB2F5 1.5A,高达28V输出1.2MHz升压转换器芯片IC

一般说明 该SDB2F5是一个恒定的频率&#xff0c;5针SOT23电流模式升压转换器&#xff0c;低功耗应用。SDB2F5交换机位于1.2MHz&#xff0c;并允许使用高度小于或等于2mm的微小、低成本电容器和电感器。内部软启动的结果在小浪涌电流和延长电池寿命。 该SDB2F5操作从一个…

【15-聚类分析入门:使用Scikit-learn进行K-means聚类】

文章目录 前言K-means聚类的原理Scikit-learn中的K-means实现安装与导入生成模拟数据应用K-means聚类可视化聚类结果选择K的值总结前言 聚类分析是一种无监督学习方法,用于将数据集中的样本分组成若干个簇(cluster)。K-means是最广泛使用的聚类算法之一,其核心思想是将数据点…

爱普生RX8111CE工厂流水线控制模块实现超长待机

经过多年的高速发展&#xff0c;我国已基本实现工业机械化&#xff0c;但距离工业自动化还有很大差距。随着机器人、工业自动化趋势愈演愈烈&#xff0c;未来发展前景日趋明朗。工厂流水线的要求也日益增加&#xff0c;其中包括对计件、计时等定量的要求&#xff0c;还有对设备…

【算法每日一练】

蛮有意思的的一道题&#xff0c;最后要判断能否成为一种1~n的全排列&#xff0c;我最这样做的&#xff1a; 整个数组先排序一下。假设遍历到了i&#xff0c;那就判断前面b和r的个数&#xff0c;但是有想到了后面可能还会对前面的结果产生影响&#xff0c;所以就抛弃了这个想法…

Now in Android 4月份更新速览

Now in Android 4月份更新速览 1. 引言 Android 15 Beta的发布标志着Android生态系统的新一轮更新。这次更新旨在提升用户体验和开发效率&#xff0c;让我们一起来了解其中的重要内容。 2. Android 15 Beta介绍 Android 15 Beta带来了一系列新功能&#xff0c;其中包括默认边…

JAVA同城服务美容美发到店服务上门服务系统源码微信小程序+微信公众号+H5+APP

随着科技的飞速发展&#xff0c;互联网和移动互联网已经渗透到我们生活的方方面面&#xff0c;同城服务美容美发到店服务上门服务系统应运而生&#xff0c;为整个行业带来了巨大的变革和无限的可能。该系统的重要性和优势不言而喻&#xff0c;对于行业发展和用户需求的影响深远…

文件系统学习

软连接&#xff1a;可以跨不同的磁盘块&#xff0c;创建出不同的inode节点 应连接&#xff1a;相同的inode节点&#xff0c;不同的文件名字记录在父亲节点目录中 分区(fdisk)&#xff0c;格式化(mkfs)&#xff0c;挂载(mount)&#xff0c;大于2T分区&#xff08;parted&#…

Go常用的标准库——fmt,time

一.fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 1.1 向外输出 标准库fmt提供了以下几种输出相关函数。 Print Print系列函数会将内容输出到系统的标准输出&#xff0c;区别在于Print函数直接输出内容&#xff0c;没有换…

【数据结构】二叉树-堆

一、树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限节点组成的一个具有层次的关系的集合。 注意&#xff1a;子树不能相交 节点的度&#xff1a;一个节点含有的子树个数称为该节点的度&#xff1b;A为6&#x…