前言
一名正在自由职业的程序员的独立开发之路
说明
本篇文章主要是最近在上线自己的node服务,数据库用的mysql,此篇文章不是那种 基础知识的简单堆砌,而是自己按照自己的实践流程记录下平时常用的mysql的语句,以及记录这其中遇到的问题,希望对你有所帮助
mysql 常用的操作命令
说明:
- 我的服务器环境是
centos系统 - 我的mysql的版本是 8以后的版本
- 我的mysql是通过 通过 docker 来安装的,因为当时单独安装
mysql总是不成功,没有办法,通过docker安装成功了 - 因为是通过
docker安装的mysql,所有在登录服务器之后,必须用docker来启动bash - 每句sql语句都必须在最后加分号 ;
# 登录服务器
ssh abc@127.0.0.1(abc为用户名 127.0.0.1 为你的服务器ip地址)
# 切换到 docker 的bash 命令
docker exec -it mysql bash
# 连接并登录数据库(--default-character-set=utf8mb4这个后面会说到)
mysql -u abc -p密码 --default-character-set=utf8mb4;
# 查看所有的数据库
show databases;
# 选择一个要用的数据库 (dbname 为数据库的名字)
use dbname;
# 查询当前数据库中所有的表
show tables;
# 查询某个表的所有数据(Group为表名字)
select * from `Group`;
# 加查询条件来查询
select * from `Group` where id=1;
# 其他遇到的sql
# 查看当前编码集
show variables like 'character%';
# 查看mysql的版本(注意是V是大写的)
mysql -V
遇到的问题总结(重要)
第一个问题
执行一个简单的mysql的时候,报错了;
# 这个报错
select * from Group;
# 解决
select * from `Group`;
# 原因
Group应该是关键字,或者特殊的字段 的原因导致的
第二个问题
搜索出来的数据,里面的中文都展示不了
# 解决办法 在登录的时候指定 字符集即可(每次登录都这样设置即可)
mysql -u abc -p密码 --default-character-set=utf8mb4;
# 原因是编码的问题,通过下面的命令查看当前编码
show variables like 'character%';
说明:
- mysql 8 之后默认都是
utf8mb4,这种编码格式,而utf8mb4是utf-8的超级,是包含utf-8的,而mysql之前的版本默认的utf8(待勘正),要想支持中文,需要自己设置为gbk - 我的接口获取的数据都是能显示中文,只有在
mysql命令行中才是乱码 - 编码格式的设置分好多种 ,但是每个对应的不一样,详细细节还是很有学问,此处就不展开讲了。详细看下这篇文章和《MySQL是怎样运行的》这本书;所以此处我这边只需要设置其中几个就好了
- 网上也有很多其他的方法,比如直接
set xxx=gbk;,我试过,但是没有效果,可能是什么其他环节不对 - 还有一种方法是直接修改 mysql的启动文件里面的设置,我暂时没有信心那这样做,毕竟还是不太熟悉,此处就不展开讲了
总结
-
虽然网上的资料很多,但是不一定适合自己,因为每个人的环境与版本是都是不一样的
-
虽然都是很基础的东西,但是就是这么基础的东西,都能遇到一大堆问题
-
虽然有些问题饶着给解决了,但是没有深究,这其实对于学知识是非常不好的,永远都不能长进
-
还是先把项目搞起来,回过头把这些坑再看一遍,深究其原因,那样收获才是最大的