mysql安装、配置及基本操作(内附:常用查询语句练习)

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

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

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

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

2.配置mysql

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

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

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

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

详细操作见:https://blog.csdn.net/feixiang2039/article/details/81164136 

输入

mysql --help

可以看到如下文字:

依次查看上述配置,确认当前读取的配置文件目录,修改配置。修改配置后,杀死mysql进程(见: https://blog.csdn.net/xiaoqiu_cr/article/details/80906955),执行

mysql.server start

命令,重启mysql。

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

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

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

》》》https://blog.csdn.net/a281468673/article/details/90755356

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

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

详见:https://www.cnblogs.com/fger/p/10403017.html

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

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

https://blog.csdn.net/bao19901210/article/details/51917641

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

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

问题点三:MySQL配置相关

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

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

https://blog.csdn.net/bahaidong/article/details/80475684

3.启动&终止mysql

问题点四:如何启动mysql

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

2. 源码安装的

https://blog.csdn.net/jackliu16/article/details/79186011

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

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

默认的用户信息都在mysql这个数据库中,具体信息可以切换到该数据库进行查看。参见:https://blog.csdn.net/huxinguang_ios/article/details/80893675

四.数据库表的建立

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

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.执行顺序

https://www.cnblogs.com/52forjie/p/7825613.html

https://www.cnblogs.com/xiaolovewei/p/8999623.html

https://www.cnblogs.com/xiaoyaodijun/p/4521858.html

2.语句的执行顺序与explain

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

 

知识点6:mysql死锁

http://blog.csdn.net/c__ilikeyouma/article/details/8541195

 

知识点7:mysql数据备份:

 

 


数据库查询练习题:https://blog.csdn.net/fy_java1995/article/details/80305172


常见报错:

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

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

这是由于不同版本的mysql加密规则不一致导致的问题:解决方案详见:https://www.cnblogs.com/zhurong/p/9898675.html

https://blog.csdn.net/xjl271314/article/details/80550765


杂:https://www.csdn.net/gather_22/MtTaIgwsNDAzNy1ibG9n.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值