一.查询本地已经存在的mysql地址

which mysql   #查看使用的是哪一个mysql,执行mysql指令的绝对路径。即(运行文件所在路径)

二.安装、配置并启动mysql(安装及配置过程中的一些常见报错,见文尾)

1.安装mysql,可以使用如下3种方法:

  • 源码安装
  • 包安装
  • mac下brew安装与配置mysql

2.配置mysql

问题点一:如何设置mysql为远程可登录?

用brew install 安装成功mysql后提示如下:(MySQL is configured to only allow connections from localhost by default)

mysql gbase 适配 mysqlbranch_mysql gbase 适配

图一:brew install安装后的提示图

可以看到mysql安装后默认只能本机连接 若需要远程连接,需要修改配置!

输入

mysql --help

可以看到如下文字:

mysql gbase 适配 mysqlbranch_mysql_02

依次查看上述配置,确认当前读取的配置文件目录,修改配置。修改配置后,杀死mysql进程

执行

mysql.server start

命令,重启mysql。

操作完成后使用如下命令,校验是否可远程登录:

mysql -h xx.xx.xx.xx -P 3307 -uroot -p123 #注意:"-p"和"123" 之间不能有空格

》》》查看某一个命令是在什么目录下执行

》》》

问题点二:如何在同一mysql服务器上启动多个端口?

上述操作默认启动的是3307端口,那么如何在同一台MySQL服务器启动多个端口-为读写分离做准备呢?

》使用mysqld --initialize初始化数据库实例(注意不要使用mysql_install_db,这个命令已经弃用),命令执行方式见:

https://idc.wanyunshuju.com/cym/1486.html


》登录mysql后,输入如下命令,来查看当前的端口号。

show global variables like 'port'; #该命令可用于查看服务器配置参数

问题点三:MySQL配置相关

Mac系统添加MySQL配置文件: https://www.jianshu.com/p/55ba63012185     

⚠️mac中安装完mysql后,没有自动生成mysql的配置文件,需要手动去操作生成。手动操作生成后,重启电脑生效。


3.启动&终止mysql

问题点四:如何启动mysql

1. brew install安装的mysql会有提示启动命令,见下图一。

2. 源码安装的


三:登录、修改密码、查看&创建用户

用用户名和密码登录后,新安装的mysql默认有以下4个数据库:

mysql gbase 适配 mysqlbranch_mysql gbase 适配_03

默认的用户信息都在mysql这个数据库中,具体信息可以切换到该数据库进行查看。

四.数据库表的建立

创建一个用于学习的数据库

CREATE DATABASE TestDB;

五.操作数据库

一路坎坷,终于到了真正使用的时刻,灯灯灯灯...

数据库语句编写的第一步:创建表(也称为关联表)

知识点1:

delete 和 drop的区别,直接看执行结果见下:


mysql gbase 适配 mysqlbranch_MySQL_04

图1

mysql gbase 适配 mysqlbranch_mysql_05

图2

mysql gbase 适配 mysqlbranch_数据库_06

图3

                 

知识点2:

sum,count函数,只有在group之后才使用。并且一使用了group by之后,就必须使用函数来查询

知识点3:

连接查询一定要对结果集进行去重(distinct)

子查询的in和等于问题,注意当子查询是多个时只能用in,子查询结果只用一个时可以用=

知识点4:

查询出每一个取经人打怪最多的日期,并列出取经人的姓名,打怪最多的日期和打怪数量。

方法一:join 查询+子查询实现多列过滤:

select a.user_name, b.timestr , b.kills from user1 as a left join user_kills as b on a.id=b.user_id where (a.id , b.kills) in (select user_id, MAX(kills) from user_kills group by user_id);

方法二:多个join查询连接

select a.user_name, b.timestr , b.kills from user1 as a left join user_kills as b on a.id=b.user_id join (select user_id, MAX(kills) as cnt from user_kills group by user_id) as c on b.user_id=c.user_id and b.kills = c.cnt;

报错:估计是粘贴格式的问题,重新编写一下就正确了

mysql gbase 适配 mysqlbranch_mysql gbase 适配_07

https://zhidao.baidu.com/question/570567785.html

知识点5:mysql语句的书写顺序和执行顺序:

mysql的每一个操作都会产生一张虚拟表,这个虚拟表作为下一步处理的输入,这些虚拟表对于用户来说是透明的,只有最后一个虚拟表才作为结果返回给用户。

1.执行顺序

2.语句的执行顺序与explain

https://www.jianshu.com/p/c84a850295f9

 

知识点6:mysql死锁:


知识点7:mysql数据备份:

 



常见报错:

1. mysql安装完成后可以使用各种连接工具来进行登录,使用Navicat Premium登录时会出现如下错误:

mysql gbase 适配 mysqlbranch_mysql gbase 适配_08

2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found

这是由于不同版本的mysql加密规则不一致导致的问题



杂: