当前位置: 首页 > 编程日记 > 正文

Mac MySQL 数据库配置(关系型数据库管理系统)





本文已停止更新,点击此链接查看本文最新内容 !!!




前言

  • MySQL 关系型数据库管理系统。

1、配置准备工作

  • 1)配置数据库准备工作

    • 下载相关软件

      • mysql-5.7.21-1-macos10.13-x86_64.dmg
      • mysql-workbench-community-6.3.10-macos-x86_64.dmg

      • Oracle 官网
      • MySQL 官网
      • MySQL Reference Manual

      • MySQL v5.7.21 for Mac下载地址,密码:v6j7。
      • MySQL v5.7.23 for Mac下载地址,密码:jw5a。

  • 2)配置数据库注意事项

    • 提前下载好相关软件,且安装目录最好安装在全英文路径下。如果路径有中文名,那么可能会出现一些莫名其妙的问题。
  • 3)示例配置环境

    • macOS 10.11.6
    • macOS 10.13.3

2、下载安装 MySQL

  • 下载安装 MySQL 可以按照下面步骤使用二进制 PGK 包安装,或者用 Homebrew 使用以下的命令安装。

    # 安装 MySQL
    $ brew install mysql

2.1 下载 MySQL

  • 访问 MySQL 官网,然后在页面中会看到 “MySQL Community Server” 下方有一个 “DOWNLOAD” 点击。

    993906-20180309031910729-1899996718.png

  • 进入 MySQL 的下载界面,如果用的是 Mac OS 来访问的话那么就会默认为你选好了 Mac OS X 平台,而下面罗列的都是在 Mac OS 上能用的 MySQL 的版本,如果是用的其他平台,在 “Select Platform” 选项的下拉列表中选一下就好了。

  • 在 Mac OS 上的 MySQL 的版本很多,其中有按平台来的,比如 10.5/10.6 等平台,然后有 32 位的和 64 位的,这个你按照自己系统的情况来进行选择,然后就是文件的后缀名有 .tar.gz 的和 .dmg 的,这里我选择的是 .dmg 的。点击右侧的 Download 进行下载。

    993906-20180309031916179-941144337.png

  • 然后会跳转到另外一个界面,这个界面是提示你需不需要注册的,直接选择最下面的 “No thanks, just start my download.”,然后进行下载就 OK 了。

2.2 安装 MySQL

  • MySQL server 安装在目录 /usr/local/mysql 下面,子目录 /usr/local/mysql/bin 中包含了 MySQL server 的可执行脚本命令,同时,MySQL server 安装了一个配置程序,方便我们开启/关闭 MySQL 数据库服务器。

  • 打开 MySQL 的安装包,双击 pkg 文件安装。

    993906-20180309032005052-504542977.png

  • 一路向下,记得保存最后弹出框中的密码,它是你的 MySQL root 账号的密码。

    993906-20180309032010081-93854492.png

  • 对于 MySQL 8 及以上的版本,在安装过程中不要选择使用强用户密码(Use Strong Password Encryption),否则可能都是其它数据库管理软件无法建立连接,要选择使用旧的的密码方式(Use Legacy Password Encryption)。

    993906-20180604165127904-1501931586.png

  • 安装完成后在系统偏好设置的最下边会出现 MySQL 图标。

    993906-20180309032015063-1950724443.png

  • 点击图标,进入 MySQL 偏好设置,开启 MySQL Server 服务。

    993906-20180309032020456-1400483238.png

2.3 添加系统环境变量

  • 如果使用终端命令使用 MySQL 数据库,需要将其添加到系统环境变量中。

  • 1)查看是否已添加了系统环境变量中

    • 在终端中输入以下命令。

      # 登录数据库,-u 表示登录的用户名,-p 表示登录的密码
      $ mysql -u[用户名] -p
      $ mysql -uroot -p
    • 如果没有设置环境变量,终端会输出如下信息,这说明我们还需要将 MySQL 加入系统环境变量。

      -bash: mysql: command not found
  • 2)查看 MySQL 安装路径

    • 在终端输入以下命令。

      $ cd /usr/local/mysql/bin && ls
    • 查看此目录下是否有 MySQL,如下图所示。

      993906-20180309032049424-1710888347.png

  • 3)添加系统环境变量

    • 在终端输入以下命令,打开系统环境变量配置文件。

      # 打开环境变量配置文件
      $ vim ~/.bash_profile
    • 在该文件中添加 mysql/bin 的目录,如下图所示。

      export PATH=$PATH:/usr/local/mysql/bin
      export PATH=$PATH:/usr/local/mysql/support-files
      • macOS 10.13.3 截图

        993906-20180309032106900-1629246640.png

      • macOS 10.12 截图

        993906-20180309032111082-1383981392.png

    • 添加完成后,按 esc,然后输入 :wq 保存退出。

    • 最后在终端输入以下命令,使配置生效。

      # 使环境变量配置生效
      $ source ~/.bash_profile
  • 4)登录 MySQL

    • 现在你就可以通过 mysql -uroot -p 登录 MySQL 了,登录过程中会让你输入 MySQL root 用户的密码。

    • 打开一个新的终端,在终端中输入以下命令,登录 MySQL。

      # 登录数据库,-u 表示登录的用户名,-p 表示登录的密码
      $ mysql -u[用户名] -p
      $ mysql -uroot -p
    • 输入密码登录成功后终端会输出如下信息。

      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 125
      Server version: 5.7.17 MySQL Community Server (GPL)
      Copyright (c) 2000, 2016, 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.
  • 5)退出 MySQL

    • 在终端输入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit

3、修改 root 账户密码

  • 1)登录 MySQL

    • 在终端中输入以下命令,登录 MySQL。

      # 登录数据库,-u 表示登录的用户名,-p 表示登录的密码
      $ mysql -u[用户名] -p
      $ mysql -uroot -p
    • 输入原 root 账户密码,登录成功后终端会输出以下信息。

      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 125
      Server version: 5.7.17 MySQL Community Server (GPL)
      Copyright (c) 2000, 2016, 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 添加到系统环境变量。

      -bash: mysql: command not found
  • 2)修改密码

    • 登录成功后,可以通过下面的命令修改密码。

      # SET PASSWORD FOR '用户名'@'服务器地址' = PASSWORD('新的密码');
      > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新的密码');
  • 3)退出 MySQL

    • 在终端输入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit

4、重置 root 账户密码

  • 1)关闭 MySQL Server 服务

    • 苹果 => 系统偏好设置 => 最下边点 MySQL,在弹出页面中关闭 MySQL Server 服务(点击 Stop MySQL Server)。
  • 2)登录管理员权限

    • 在终端输入以下命令,切换到 MySQL 安装路径。

      # 苹果系统下 MySQL server 的安装路径
      $ cd /usr/local/mysql/bin/
    • 回车后,在终端输入以下命令,登录管理员权限。

      # 登录管理员权限
      $ sudo su
    • 输入 Mac 管理员密码,回车后,终端会输出以下信息。

      sh-3.2#
  • 3)禁止 MySQL 验证功能

    • 在终端输入以下命令,禁止 MySQL 验证功能。

      # 禁止 MySQL 验证功能
      ./mysqld_safe --skip-grant-tables &
    • 回车后 MySQL 会自动重启(偏好设置中 MySQL 的状态会变成 running),终端会输出以下信息。

      [1] 14941
      sh-3.2# Logging to '/usr/local/mysql-5.7.21-macos10.13-x86_64/data/bogon.err'.
      2018-02-23T09:15:46.6NZ mysqld_safe Starting mysqld daemon with databases 
      from /usr/local/mysql-5.7.21-macos10.13-x86_64/data
  • 4)登录 MySQL

    • 在终端中输入以下命令,登录 MySQL。

      # 登录 MySQL
      ./mysql
    • 回车后,终端会输出以下信息。

      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 207
      Server version: 5.7.21 MySQL Community Server (GPL)Copyright (c) 2000, 2018, 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>
  • 5)重置 MySQL 权限

    • 在终端输入以下命令,重置 MySQL 权限。

      > FLUSH PRIVILEGES;
    • 回车后,终端会输出以下信息。

      Query OK, 0 rows affected (0.03 sec)
  • 6)设置新的密码

    • 在终端输入以下命令,设置新的密码。

      # SET PASSWORD FOR '用户名'@'服务器地址' = PASSWORD('新的密码');
      > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新的密码');
    • 回车后,终端会输出以下信息。

      Query OK, 0 rows affected, 1 warning (0.01 sec)
  • 7)退出 MySQL

    • 在终端输入以下命令,退出 MySQL。

      # 退出 MySQL
      > exit
    • 在终端输入以下命令,退出管理员权限。

      # 退出管理员权限
      exit
    • 以上几步完成后密码就修改成功了,现在就可以用新设置的密码去登陆 MySQL 了。

5、删除匿名用户

  • 很多 MySQL 程序都会带有匿名登录的功能。在刚刚安装完 MySQL 之后,就能够登录数据库啦。这对于平时使用 MySQL 来说也基本没有什么,可是假设我们想部署数据库的时候,这样的登录方式是绝对不能存在的。

  • 或者在登录时如果提示以下信息,原因是 MySQL 中存在一个匿名用户,如果我们不删除匿名用户,即使使用其他用户登录,都会自动跳转使用匿名用户登录。

    Access denied for user ''@'localhost' to database 'mysql'
  • 解决方法如下。

  • 1)匿名登录数据库

    • 在终端输入以下命令,匿名登录数据库。

      # 匿名登录数据库
      $ mysql -u root -p
    • 输入密码回车后,终端会输出以下信息。

      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 952
      Server version: 5.7.21 MySQL Community Server (GPL)Copyright (c) 2000, 2018, 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> 
  • 2)切换数据库

    • 然后切换数据库,进入我们须要操作的数据库 MySQL。

      # 切换数据库
      > use mysql
    • 回车后,终端会输出以下信息。

      Reading table information for completion of table and column names
      You can turn off this feature to get a quicker startup with -ADatabase changed
  • 3)查看数据库用户

    • 删除之前我们先查看一下数据库的用户表,看看用户的存在情况

      # 查看数据库用户
      > select user, host from user;
    • 回车后,终端会输出以下信息。

      +------+-----------------------+
      | user | host                  |
      +------+-----------------------+
      | root | 127.0.0.1             |
      |      | localhost             |
      | root | localhost             |
      |      | localhost.localdomain |
      | root | localhost.localdomain |
      +------+-----------------------+
      5 rows in set (0.00 sec)
    • 我们看到啦,在 user 这一列有的行是空的,这就是那个匿名用户。

  • 4)删除匿名用户

    • 在终端输入以下命令,删除匿名用户。

      # 删除指定的数据库用户
      > delete from user where user='';
    • 回车后,终端会输出以下信息。

      Query OK, 2 rows affected (0.00 sec)
    • 此时运行的状态显示我们删除了两行数据,然后运行一边查询命令,确认一下是不是真的删除成功。

      # 查看数据库用户
      > select user, host from user;
    • 回车后,终端会输出以下信息,已经成功删除啦。

      +------+-----------------------+
      | user | host                  |
      +------+-----------------------+
      | root | 127.0.0.1             |
      | root | localhost             |
      | root | localhost.localdomain |
      +------+-----------------------+
      3 rows in set (0.00 sec)

6、卸载 MySQL

  • Mac 下 MySQL 的 dmg 格式安装内有安装文件,却没有卸载文件,如果要卸载 MySQL,需要手动去删。

  • 先在 MySQL 的偏好设置中,停止所有 MySQL Server 服务。

  • 然后在终端中输入以下命令。

    sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*
    sudo rm -rf /Library/StartupItems/MySQLCOM
    sudo rm -rf /Library/PreferencePanes/My*vim /etc/hostconfig (and removed the line MYSQLCOM=-YES-)rm -rf ~/Library/PreferencePanes/My*sudo rm -rf /Library/Receipts/mysql*
    sudo rm -rf /Library/Receipts/MySQL*
    sudo rm -rf /var/db/receipts/com.mysql.*

转载于:https://www.cnblogs.com/QianChia/p/8531849.html

相关文章:

SSM框架——Spring+SpringMVC+Mybatis的搭建教程

一:概述SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。 Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP。SpringMVC是Spring实现的一个Web层…

【java】兴唐课程第五节到第九节知识点总结

第九节 1、 代码:void readBook(String… bookNames) 表示不确定参数的个数,此时变量为一个数组。 2、当方法中的参数名称(如stuname)和属性名称相同时。 this.stuname表示属性 stuname表示参数。 3、主方法与所在的累无关,是一个程序的入口…

构建RHEL上的extmail

一、extmail_solutionz 1、ExtMail Solution 结构 ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix、Amavisd-new、ClamAV、ExtMail、ExtMan、Courier系列软件。是一个功能相对比较齐全的免费电子邮件系统。以下是其主要的特…

MapReduce_wordcount

测试数据: [hadooph201 mapreduce]$ more counttext.txt hello mamahello babahello wordcai wen weimama baba jiejie gegegege jiejie didimeimei jiejiedidi mamaayi shushuayi mamahello mamahello babahello wordcai wen weimama baba jiejie gegegege jiejie …

Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 下(超详解)...

​简介 通过上一篇宏哥给各位小伙伴们的引荐,大家移动对这位美女有了深刻的认识,而且她那高超的技艺和婀娜的身姿久久地浮现在你的脑海里,是不是这样呢???不要害羞直接告诉宏哥:是,就…

蜻蜓resin服务器虚拟目录的设置

首先&#xff0c;别急着打开服务器先&#xff0c;接住打开resin主目录下的conf文件夹的resin.conf文件&#xff0c;老规矩&#xff0c;备份先&#xff0c;mv resin.conf resin.conf.bak然后vi resin.conf 文件&#xff0c;找到如下这段代码&#xff1a;1 <!--configures the…

【java】兴唐第十节课知识点总结

1、使用main里的成员方法也要实例化对象吗&#xff1f; 必须实例化 ///重点&#xff01; 2、在成员方法中调用另一个成员方法可以直接调用&#xff08;前面省略一个this.&#xff09; 3、 \n也可以在java里用 4、null可以是除了基本数据类型外的任何数据类型 5、基本数据类…

SharePoint2010是个什么东西

Microsoft SharePoint Foundation is an application that is built on top of Internet Information Services (IIS) and the Microsoft ASP.NET Framework. Microsoft SharePoint Foundation 是架构在IIS和ASP.NET Framework上的一个应用程序。IIS是与互联网站点相关的&#…

Linux Shell高级技巧(目录)

为了方便我们每个人的学习&#xff0c;这里将给出Linux Shell高级技巧五篇系列博客的目录以供大家在需要时参阅和查找。 Linux Shell高级技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2271167.html一、将输入信息转换为大写字符后再进行条件判断二、为调…

Keras卷积+池化层学习

转自&#xff1a;https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/ https://keras-cn.readthedocs.io/en/latest/layers/pooling_layer/ 1.con1D keras.layers.convolutional.Conv1D(filters, kernel_size, strides1, paddingvalid, dilation_rate1, ac…

【Java】阿里巴巴java开发手册总结(我能看懂的)

尽管这本《手册》句句是精华&#xff0c;但由于我还是个菜鸟&#xff0c;这里仅作&#xff08;我能用的到的&&我能看懂的&#xff09;的笔记 1.1命名风格 1、类名用UpperCamelCase的风格 2、方法名、参数名、成员变量、局部变量都统一用lowerCameCase的风格&#xff…

关于maya与max互导FBX出现错误的解决方案。

因为自己实在是不愿意一次又一次把时间浪费在导入导出的问题上。每一次都是多试几次才成功&#xff0c;也没有真正去测试这个东西。但是今天实在是碰到了错误中的极品了。最后还是决定写下来。。算是给自己做笔记吧。。大家如果在导入导出的时候遇到一些问题不妨试试以下几种方…

AS3.0中的显示编程(六)-- 几何结构

几何结构&#xff0c;主要是完成Flash编程中&#xff0c;一些和几何相关的内容。如显示对象的变形角度、公式计算等。可能很多人和我一样&#xff0c;高中学的几何知识&#xff0c;差不多都已经还给老师了。不过也不用太担心&#xff0c;因为一般情况下&#xff0c;我们也用不到…

Win10命令行激活 电脑组装

系统激活&#xff1a; 1. 管理员身份运行 cmd 2. slmgr.vbs /upk //卸载产品密匙 3. slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX //安装 4. slmgr /skms zh.us.to …

【java】兴唐第十五节课

知识点&#xff1a; 1、定义包名不能以java.为开头。 2、获取系统时间的方法&#xff1a; 注意&#xff1a; &#xff08;1&#xff09; 引入Date类时&#xff0c;引入的是java.util.Date 而不是java.sql.Date(后者是前者的子类)。 代码实现 Date date new Date(); System.o…

SQL Server 日期和时间相关的数据类型有两种

SQL Server 日期和时间相关的数据类型有两种&#xff1a;DateTime和SmallDateTime。 DateTime:需要8个字节&#xff0c;前4个字节用1900年1月1日以后的天数表示日期&#xff0c;后4个字节表示一天中的时间。支持的日期范围&#xff1a;1/1/1753 12:00:00 AM到12/31/9999 11:59…

序列化pickle

import pickle d { name:alex, role:police, blood: 76, weapon:AK47 } d_dump pickle.dumps(d) #序列化 print (pickle.loads(d_dump)) #反序列化 f open(game.pkl, wb) pickle.dump(d, f) #First in first out (FIFO) pickle.dump(alive_players, f) dump 写入文件 du…

T-SQL笔记3:事务、锁定和并发

T-SQL笔记3&#xff1a;事务、锁定和并发 本章摘要 1&#xff1a;事务 1.1&#xff1a;显式事务 1.2&#xff1a;使用DBCC OPENTRAN显示最早的活动事务 2&#xff1a;锁定 2.1&#xff1a;查看锁的活动 3&#xff1a;并发影响及隔离级别 3.1&#xff1a;并发影响 3.2&#xff1…

几种常用数据库比较

目前&#xff0c;商品化的数据库管理系统以关系型数据库为主导产品&#xff0c;技术比较成熟。面向对象的数据库管理系统虽然技术先进&#xff0c;数据库易于开发、维护&#xff0c;但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES…

成功将BlogEngine 1.5 升级到了BlogEngine 2.0

使用BlogEngine.Net博客系统有两年时间了。官方的最新版本已经出到了2.5。但它是基于.net4.0的。也就是说服务器必须安装.net4.0&#xff0c;运行环境必须选择4.0。出于移植性的考虑。我决定将我的博客升级到2.0。BlogEngine.Net2.0是继续.net2.0的。虽说必须安装.net 3.5&…

【java】4.27上课及做作业时遇到的问题及第十六节课笔记整理

注意&#xff1a; 部分知识点只在eclipse运行环境中适用 1、字符串转化为字符数组的方法: 代码实现&#xff1a; char[] strcs text.toCharArray();2、字符数字转化为字符串 String reStr new String(re,0 ,position);3、打包及 引包的方法 &#xff08;1&#xff09; 用ex…

【Android】基于A星寻路算法的简单迷宫应用

简介 基于【漫画算法-小灰的算法之旅】上的A星寻路算法&#xff0c;开发的一个Demo。目前实现后退、重新载入、路径提示、地图刷新等功能。没有做太多的性能优化&#xff0c;算是深化对A星寻路算法的理解。 界面预览: 初始化: 寻路: 后退: 提示: 完成: 刷新地图: 下载地址: 项目…

[转]SQL 约束讲解

约束主要包括&#xff1a; •NOT NULL •UNIQUE •PRIMARY KEY •FOREIGN KEY •CHECK •DEFAULT 1、not null &#xff1a;用于控制字段的内容一定不能为空&#xff08;NULL&#xff09;。 用法 &#xff1a;Create table MyTable ( id …

JSON 转 VO

需求 将获取的json数据直接转为vo 解决 利用net.sf.json.JSONObject的toBean() 确保json中的key值和vo中的字段名称一致 JSONObject jsonObject new JSONObject();UserVO vo new UserVO(); vo (UserVO) net.sf.json.JSONObject.toBean(jsonObject, UserVO.class);参考文档地…

怎样查看一个端口有无开启

有时候我们需要确定一下某个端口有无开启&#xff0c;有两种方法。 方法 1&#xff1a;查看一个端口有无开启的最简单方法 查看端口有无开启&#xff0c;需要在dos里使用命令来完成。这个命令就是&#xff1a; netstat -ano这个命令能显示当前电脑有哪些端口正在使用&#xff0…

一道SQL统计试题

根据上图A表和B表&#xff0c;按照年份和地区生成1至12个月的数据&#xff0c;结果如下&#xff1a; 方法一&#xff1a; select YEAR,AreaName, MAX(case Month when 1 then Money else 0 end) as [1月], MAX(case Month when 2 then Money else 0 end) as [2月], MAX(case Mo…

【单片机】时钟周期 器械周期 指令周期的关系

1、 时钟周期&#xff08;振荡周期&#xff09;&#xff1a;始终周期也称振荡周期&#xff0c;定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的单位。在一个始终周期内&#xff0c;CPU仅完成一个最基本的动作。时钟周期是一个时间的量。始终周期表示了SDRAM&#xf…

Painting A Board --POJ 1691

1、题目类型&#xff1a;暴力法、DFS。 2、解题思路&#xff1a;题意&#xff0c;一块大的矩形区域的被分成多个矩形区域&#xff0c;现在要给不同的区域涂上不同的颜色&#xff0c;有不同颜色的刷子可以提供&#xff0c;每个刷子可以刷一种不同的颜色。每刷一次&#xff0c;将…

《JavaScript高级程序设计》读书笔记【一】

JavaScript介绍 ECMAScript&#xff0c;由ECMA-262定义&#xff0c;提供核心语言功能&#xff1b;  文档对象模型&#xff08;DOM&#xff09;&#xff0c;提供访问和操作网页内容的方法和接口&#xff1b;  浏览器对象模型&#xff08;BOM&#xff09;&#xff0c;提供与浏…

上不了名校?可以在 GitHub 上读他们的课程

今天开始&#xff0c;全国各大区域的高考成绩陆续公布&#xff0c;又到了几家欢喜几家愁的时刻&#xff0c;如果你准备报考计算机相关专业&#xff0c;但是又由于分数不高而苦恼。别担心&#xff0c;在 GitHub 上有着大量的名校教学资源&#xff0c;即使上不了名校&#xff0c;…