5.1 MySQL介绍

本节主题: 5.1 MySQL介绍

课程讲师: Charlie

观看地址: 点我进入


1 本节要点

  • 了解MySQL的基本操作

2 课前准备

2.1 MySQL

2.1.1 安装MySQL

(建议将MySQL安装在服务器,便于我们进行后端开发时的数据库访问,所以大家可以花4元续费1周的服务器)

也可以安装在本地主机(如果MySQL安装在本地,那么封装接口后,除了要做穿透,还要保持本地机时刻开机,我们演示的话是以安装在服务器为例):

Windows安装MySQL教程:点我查看

Mac安装MySQL教程:点我查看


从XShell登录服务器:


升级 apt-get

sudo apt-get update

安装MySQL

sudo apt-get install mysql-server

如下图,出现是否继续后,输入Y,按回车即可继续安装


2.1.2 初始化MySQL

初始化MySQL配置

sudo mysql_secure_installation

会弹出下列所示的初始化的配置项,可依次输入你的选项。注意输入密码时,不会显示在shell中,直接输入后按回车即可!

#1
VALIDATE PASSWORD PLUGIN can be used to test passwords...
Press y|Y for Yes, any other key for No: N (我的选项)


#2
Please set the password for root here...
New password: (输入密码,注意,shell界面输入密码不会显示,并不是卡了)
Re-enter new password: (重复输入)


#3
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : N (我的选项)


#4
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y (我的选项)


#5
By default, MySQL comes with a database named 'test' that
anyone can access...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N (我的选项)


#6
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y (我的选项)

检查MySQL状态

systemctl status mysql.service

出现active表示正常


2.1.3 配置远程连接

#进入MySQL
sudo mysql -uroot -p

#出现Enter password: 后,输入你的密码并按回车(注意,shell界面输入密码不会显示,并不是卡了)


进入MySQL后,创建一个库 jdy_api (这个名字可以自定),用来进行测试

CREATE DATABASE jdy_api;

创建一个拥有所有库访问权限的访客账号(账号为user1,密码为123456,当然也可以自行更改)

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

# 或者可以这样,设置该账户只能访问jdy_api库
GRANT ALL PRIVILEGES ON jdy_api.* TO 'user1'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

#刷新权限
flush privileges;

#退出mysql
exit

注:这样我们的Mysql已经就已经有了2个账号:第一个是管理员账号,用户名root,密码为安装时候设置的密码;第二个账号是访客账号,用户名user1,密码123456,后面在用Navicat和Python进行开发的时候,建议使用访客账号~


2.1.4 修改配置文件

这里要退出MySQL,到操作系统才可以进行下一步操作,如图,mysql> 表示在MySQL环境,root@xxxxx 表示在ubuntu操作系统;


修改MySQL配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address= 127.0.0.1


按键盘 i 进入编辑模式,在bind前加上#

bind-address = 127.0.0.1 修改为(注释掉)

#bind-address = 127.0.0.1


按esc健,然后同时按shift 和 ;键(L健右边),在出现冒号后输入wq,按回车退出


重启MySQL服务即可

service mysql restart


2.1.5 开放阿里云安全组

按照文档 Linux基础 内的操作,开放3306端口(MySQL远程连接端口),同样为TCP协议。


2.2 Navicat

Navicat是一款方便的数据库管理工具,可远程连接数据库,通过可视化的界面对数据库进行管理。

下载地址:点我查看


进入Navicat后,点击新建连接,选择MySQL


填写连接名称、主机(ip地址)、端口为3306、访客用户名、访问密码(注意,不是root账号和root的密码!!!我们在2.1里面设置了2次密码,第一次是给root管理员设置密码,这个密码用来在服务器内登录服务器进行管理;第二次是给访问账号设置用户名和密码,这里填的是访客账号!!!)


填写后,双击即可连接上你服务器的数据库!


3 课程内容

3.1 MySQL

3.1.1 MySQL支持中文

需要在MySQL插入中文字符的话,需要将数据库、表单、字段的字符全部设置成utf-8的编码格式,才可以录入中文;


数据库:


表单:


字段:


3.1.2 数据类型

**文本类型 **


数字类型


日期类型


3.1.3 MySQL常见操作

//添加和删除数据库
查看当前有哪些DB: show databases;
添加DB:create database xx;
删除DB:drop database xx;


//创建数据表
create table tabel_name(
	colum_name1 data_type1,
	colum_name2 data_type2
);

//删除数据表
drop table table_name;


//修改某个数据列的名字或数据类型
alter table table_name change old_col_name new_col_name data_type


//查看表数据(重点!)
select*from table_name;
select col_name1,col_came2 from table_name;


//插入数据(重点!)
insert into table1 values (value1,value2)
insert table1 (col1,col2,) values (value1,value2)


//去重复
select distinct col_name1,col_name2 from table_name;


//使用order by对查询结果拍讯
按单一列名拍讯
select*from table_name [where子句] order by col_name [asc/desc]
按多列排序
select*from table_name [where子句] order by col1 [asc/desc],col2 [asc/desc]


//select结果按limit截取
select*from table_name [where] [order by] limit [offset,] rowCount
limit rowCount = limit 0,rowCount


//insert into与select组合使用
insert into table1 select col1,col2 from table2
insert into table1 (col1,col2) select col3,col4 from talbe


//更新数据表
修改单列:
update table_name set col_name = XXX [where]
修改多列:
update table_name set col1=xxx,col2=xxx [where]


//where语句中in操作符使用
select*from table1 where col1 in (value1,value2)
select*from table1 where col1 in (select col2 from talbe2) 


//where语句中between操作符使用
select*from table_name where col_name between value1 and value2
select*from table_name where col_nmae not between value1 and value2


//where语句中like操作符使用 模糊匹配
select*from table_name where col_name [not]like pattern 
pattern:匹配模式 'abc' '%abc' 'abc%' '%abc%'
本文是否对您有帮助?
 有帮助
 没帮助
您是否遇到了以下问题?
如需获取即时帮助,请联系技术支持