mac上mysql8.0以tar.gz方式手动安装
一、下载
官网地址: https://dev.mysql.com/downloads/mysql/
选择:macOS 10.14 (x86, 64-bit), Compressed TAR Archive
下载后,得到一个131.9m的压缩包 mysql-8.0.13-macos10.14-x86_64.tar.gz,将其解压到/usr/local/下,并重命名为mysql (即:最后的完整目录应该是/usr/local/mysql)
二、调整目录权限
cd /usr/local
chown -R 当前登录mac的管理员用户名 mysql
这一步的目的,主要是保证/usr/local/mysql下可以写入数据
三、初始化数据库
cd /usr/local/mysql/bin
sudo ./mysqld --initialize --user=mysql
2018-12-01T14:42:12.002186Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 4229
2018-12-01T14:42:12.004783Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
2018-12-01T14:42:12.006285Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2018-12-01T14:42:14.187443Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iM46X&03qRc_
2018-12-01T14:42:15.427614Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed
注意蓝色标出的部分,初始化过程中,会生成一个随机的root初始密码,记好这个,后面会用到。
如果没记下这个密码,导致后面无法登录,可以rm -rf /usr/local/mysql/data/* 把所有文件干掉,再来一把。
四、启动mysql
cd /usr/local/mysql/support-files
./mysql.server start (注:类似的status为查看状态,stop为停止服务)
Starting MySQL
. SUCCESS!
看到这个SUCCESS就表示启动成功了。
五、修改密码
cd /usr/local/mysql/bin
./mysqladmin -u root -p password
初始密码实在太难记了,可以用上面的命令先改一下 (注:密码要满足复杂性要求,比如Www.123.abc之类)
这一步做完后,应该就可以用
./mysql -u root -p
命令行终端登录了,不过8.0貌似安全策略做了调整,用navicat之类的工具连接,会出现:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
之类的错误,解决方法:
use mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
然后应该就可以了。
六、mysql 8新增的一些函数
6.1 over()开窗函数
over开窗函数,在oracle中早就有了,但是mysql直到8.0+才开始支持,参考文档见:https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html,它的作用有点类似于将"聚合结果行转列", 具体参考下面的示例(来自官网)

如上图,这是一张销售记录表,上面记录了"某一年、某个国家、某种产品"的销售利润。如果我们要分析,每一行销售记录,在本年/本国/本类产品/甚至所有销售中的贡献度(即:所占百分比)。按传统思路,至少得先汇总出 "每年的总销售金额,每个国家的总销售金额,每类产品的总销售金额...",然后用本行的profit去除这些汇总值,才能计算出百分比。
有了over函数后,就可以很简单了:
SELECT
YEAR '年份' ,
country '国家' ,
product '产品' ,
profit '产品利润' ,
SUM(profit) OVER(PARTITION BY country , YEAR ,product) AS '年度-某国家-某产品-利润小计' ,
SUM(profit) OVER(PARTITION BY country , YEAR) AS '年度-某国-利润小计' ,
SUM(profit) OVER(PARTITION BY country) AS '某国-利润小计' ,
SUM(profit) OVER(PARTITION BY YEAR) AS '年度-利润小计' ,
SUM(profit) over() AS '利润合计'
FROM
sales
ORDER BY
YEAR ,
country ,
product ,
profit;
结果如下:

各种聚合结果,可以方便的展示在同一行,如果要输出百分比,直接拿"利润"这一栏,除以后面某一列汇总值即可。
6.2 row_number()函数
这个函数同样也是从oracle模仿过来的,用法如下:
select
row_number() over w as 'No.' ,
year ,
country ,
product ,
profit
from
sales
where
year = 2001 window w as(order by country)
order by country
输出:

详情可参考 https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html
mac上mysql8.0以tar.gz方式手动安装的更多相关文章
- 在Foreda上安装apache-tomcat-7.0.42.tar.gz
开发环境JDK和Tomcat应该和部署环境一致,要不容易出现奇奇怪怪的问题.所以Aspire机器上的Tomcat要装一个新版本了. 装Tomcat基本等于一个解压和移动的过程,确实简单. 第一步:解压 ...
- apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA)
不多说,直接上干货! Storm的版本选取 我这里,是选用apache-storm-1.0.2.tar.gz apache-storm-0.9.6.tar.gz的集群搭建(3节点)(图文详解) 为什么 ...
- Apache-kylin-2.0.0-bin-hbase1x.tar.gz的下载与安装(图文详解)
首先,对于Apache Kylin的安装,我有话要说. 由于Apache Kylin本身只是一个Server,所以安装部署还是比较简单的.但是它的前提要求是Hadoop.Hive.HBase必须已经安 ...
- redis-5.0.5.tar.gz 安装
参考5.0安装,地址:https://my.oschina.net/u/3367404/blog/2979102 前言 安装Redis需要知道自己需要哪个版本,有针对性的安装. 比如如果需要redis ...
- linux下安装nginx(nginx(nginx-1.8.0.tar.gz),openssl(openssl-fips-2.0.9.tar.gz) ,zlib(zlib-1.2.11.tar.gz),pcre(pcre-8.39.tar.gz))
:要按顺序安装: 1:先检查是否安装 gcc ,没有先安装:通过yum install gcc-c++完成安 2:openssl : tar -zxf openssl-fips-2.0.9.tar. ...
- Linux系统下安装配置JDK(rpm方式及tar.gz方式)
以前都是在Windows环境进行开发的,最近因工作需要:学习在Linux系统下搭建开发环境,自此记录搭建过程,以方便查阅. 本文借鉴了 Angel挤一挤 .小五 两位的博客. 准备材料: JDK下载链 ...
- Linux下编译安装mysql-5.0.45.tar.gz
安装环境:VMware9(桥接模式) + Linux bogon 2.6.32-642.3.1.el6.x86_64(查看linux版本信息:uname -a) 先给出MySQL For Linux ...
- 编译gd-2.0.35.tar.gz时报错:gd_png.c:16:53: error: png.h: No such file or directory
编译gd-2.0.35.tar.gz时报错: gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/freetype/include/freetype2 -I/us ...
- Centos6.5 安装 MariaDB-10.0.20-linux-x86_64.tar.gz
下载mariadb :https://downloads.mariadb.org/ 我选择mariadb-10.0.20-linux-x86_64.tar.gz这个版本 复制安装文件 /opt 目录 ...
随机推荐
- Python_subprocess模块
subprocess中,允许生成新的进程,连接到input/output/error管道,并获取他们的返回(状态)码,主要用于替换os.system/os.spawn*几个旧的模块和方法 subpro ...
- Python执行ImportError:No module named MySQLdb异常
- 在mybatis中调用存储过程的时候,不能加工语句
select count(0) from ({call pkg_business.P_ZZS_LYFPHJSKJQK ('2018-04')}) 这是错误的.
- 2017Nowcoder Girl D - 打车
题目描述 妞妞参加完Google Girl Hackathon之后,打车回到了牛家庄. 妞妞需要支付给出租车司机车费s元.妞妞身上一共有n个硬币,第i个硬币价值为p[i]元. 妞妞想选择尽量多的硬币, ...
- Java常用API及Math类
一.API的概述 API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...
- Scala-Unit-1-概述及安装
一.Scala简介 官网:www.scala-lang.org Scala语言很强大,它集成了面对对象和函数式编程的特点,并且运行在JVM(Java Virtual Machine)上,即必须安装jd ...
- Java大数统计-hdu1316
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316 题目描述: 给你一个范围,问你在这个范围内有多少斐波拉契数. 代码实现: import java ...
- 【LeetCode算法-14】Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings. If there is n ...
- Django模板之通用模板的使用
Django模板之通用模板的使用 转载:https://code.ziqiangxuetang.com/django/django-template.html 我们做网站有一些通用的部分,比如 导航, ...
- Python中list、字典、字符串的讲解
python 的list讲解 计算机中的数组是从0开始的 list中的下标.角标.索引说的都是一个 数组都是从0开始的. stus=["刘",“王”,“张”] stus2=[] ...