一.查询本地已经存在的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)
图一:brew install安装后的提示图
可以看到mysql安装后默认只能本机连接 若需要远程连接,需要修改配置!
输入
mysql --help
可以看到如下文字:
依次查看上述配置,确认当前读取的配置文件目录,修改配置。修改配置后,杀死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这个数据库中,具体信息可以切换到该数据库进行查看。
四.数据库表的建立
创建一个用于学习的数据库
CREATE DATABASE TestDB;
五.操作数据库
一路坎坷,终于到了真正使用的时刻,灯灯灯灯...
数据库语句编写的第一步:创建表(也称为关联表)
知识点1:
delete 和 drop的区别,直接看执行结果见下:
图1
图2
图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;
报错:估计是粘贴格式的问题,重新编写一下就正确了
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登录时会出现如下错误:
2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
这是由于不同版本的mysql加密规则不一致导致的问题
杂: