本文主要是介绍与MySQL邂逅,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MySQL安装捏~
其实每次新学一样东西,安装永远是一个小坎
但是小问题啦
安装MySQL要用root账户,安装后普通用户也可以用捏
要安装MySQL先来看第一步!
改bug!
Centos
卸载不要的环境
先康康有木有捏:
mariadb就是MySQL,是它的拉出来的一个开源的分支
怎样关掉MySQL呢?
systemctl stop mysqld
但是我这个本来就没哈,所以关不了
MySQL在卸载的时候不会删数据(也在情理之中捏)
获取yum源
emmm,我的系统还没安装yum(Ubuntu)
这样安装yum:
apt-get install build-essential
好了出bug了安不了,报错信息是
开始搜解决方法:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo vim /etc/apt/sources.list
官网是这样的(已疲惫):
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
然后按照官网把这个写到刚vim的那个文件下,我的是这样的:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse# 预发布软件源,不建议启用
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
然后再这样:
sudo apt-get update
草(一种植物):
阿我先不装了,我换种思路吧
狗屁bug毁我青春:
不行我先把这个说完,假设我现在用的是centos奥
Index of /232905 (mysql.com)https://repo.mysql.com/
输入这个网址,然后你会看到yum源:
其中MySQL5.7是比较常用的
要选择和系统相匹配的yum源
两个思故乡的小女孩:
下载到桌面上再rz到Linux上
获得rpm包
看系统中支持的yum源是这样的捏:
ls /etc/yum.repos.d/ -l
然后用rpm安装是这样的:
rpm -ivh 你刚才下载过来的包
查看是这样的:
ls /etc/yum.repos.d/ -l
这个查看安没安装完:
yum list | grep mysql
安装的yum源最后会自动适配系统
刚都是配置,还没正式安装
yum install -y mysql-community-server
这才是安装,小砸!
如果有报错显示秘钥过期就:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
导入新的秘钥!
然后安装完查看:
这是服务端:
which mysqld
这是客户端:
这是启动!
systemctl start mysqld
这是查询!
netstat -nltp
Ubuntu
听说还是要先这样,更新列表:
sudo apt-get update
然后这样安装服务器:
sudo apt-get install mysql-server
然后这样安装客户端
sudo apt-get install mysql-client
二者区别:
mysql-server 是MySQL核心程序将安装MySQL数据库服务器,用于生成管理多个数据库实例,持久保存数据并为其提供查询接口(SQL),供不同客户端调用。
mysql-client 是操作数据库实例的工具,允许连接到MySQL服务器使用该查询接口。
它将为您提供MySQL命令行程序。
如果只需要连接到远程服务器并运行查询,只安装mysql-client就可以了。如果是服务器只提供连接服务的只需要安装mysql-server
然后这样配置MySQL:
sudo mysql_secure_installation
然后要设个密码:
这是设置密码,自己选择密码强度
我就设个中等的吧,好吧它好像跳过了
那我也跳过吧,毕竟我也看不懂
真是一切都完蛋了呢
安装完了:
测试是这样的:
systemctl status mysql.service
启用是这样的:
sudo service mysql start
sudo systemctl start mysql.service
喵喵喵:
netstat -nltp
登录
登录用这个命令:
mysql -uroot -p
可以改配置文件以免密登录
配置文件在这里捏:
MySQL是网络服务,可以绑定账号,默认的端口号是3306,可以改(而且一般都要改)
datadir是数据所在的路径
要设置一下编码方式和默认的搜索引擎:
character-set-server=utf8
default-storage-engine=innodedb
改完配置文件要让其重启一下以生效:
service mysql restart
好吧不可以,改不了
那就干脆不改了吧
基础
在MySQL有很多选项
这是比较完备的使用:
mysql -h 127.0.0.1 -P 3306 -u root -p
不加就是默认咯
-h是指明登录部署了MySQL服务的主机
-P是指明要访问的端口号
-u是指明用户(目前默认是root)
-p是指明需要输入密码
密码输入的时候是不回显的
什么是数据库
可以看这个:
MySQL是一种网络服务
mysql是数据库服务的客户端
mysqld是数据库服务的服务器端
mysql本质是基于C(mysql)S(mysqld)模式的一种网络服务
mysql是一套给我们提供数据存取的服务的网络程序
数据库指的是在磁盘或内存中存储的特定结构组织的数据,是在磁盘上存储的一套数据库方案
数据库服务则特指mysqld
存储用文件就行了,为何还要用数据库?
一般的文件确实提供了数据的存储功能,但文件并没提供非常好的数据管理能力(用户角度)
数据库本质是对数据内容存储的一套解决方案(给字段或要求,返回结果)
一个高端的execl表格
所以文件保存数据的缺陷就很明显咯:
安全性不高
不利于数据查询和管理
不利于存储海量数据
程序中控制不方便
主流数据库
先来看看数据库吧
使用mysql建立一个数据库,建立一张表结构,插入一些数据,对比一哈mysql在linux中是如何表现得
这是看一眼:
show databases;
来看看这个存储数据的地方
这样建立一个数据库:
create database helloworld;
能看到哩:
这也可以:
建立数据库本质是Linux下的一个目录
对数据库进行操作首先要选择一个数据库:
use helloworld;
好吧打错字了,我不想跟这世界说hello
这样创建 一个表结构:
create table student(name varchar(32),age int,gender varchar(2));
然后我们还可以发现多了个这个东西:
在数据库下建表本质就是在Linux下建立文件
向表中插入数据可以这样操作:
insert into student (name,age,gender)values('墨墨',18,'女');
多插入几个可以这样筛选数据:
select * from student;
那建立各种东西的操作是谁做的呢?
是mysql服务!
数据库本质也是文件,但是这些文件不由程序员直接操作,而是由数据库服务帮我们进行操作
谈谈主流的数据库吧,受欢迎的数据库技术和生态都是很不错的!
MySQL是世界上最受欢迎的数据库,而炉石传说是世界上最好的游戏!
属于甲骨文,并发性比较好,不适合做复杂的业务,主要用于电商,SNS,论坛,优点是对简单的SQL处理效果好
新bug出现了:
服务器、数据库、表关系
罗列下相应关系吧:
安装数据库服务器是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库(一般一个应用一个数据库)
为了保存应用中的实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据
MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,各种系统在底层实现方面有所不同,但是基本能保证在各个平台上的物理体系结构的一致性
SQL有一些分类
DDL:数据定义语言,用来维护存储数据的结构(create,drop,alter)
DML:数据操纵语言,用来对数据进行操作(insert,delete,update)
DCL:数据控制语言,主要负责权限管理和事务(grant,revoke,commit)
存储引擎
存储引擎是数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法
MySQL的核心就是插件式存储引擎,支持多种存储引擎
这样查询自己的存储引擎:
show engines;
比较常用的是InnoDB
创建数据库的时候,有两个编码集:
1.数据库编码集 -- 数据库未来存储数据
2.数据库校验集 -- 支持数据库,进行字段比较使用的编码,本质是一种读取数据库中的数据采用的编码格式
数据库无论对数据做任何操作,都必须保证操作和编码是编码一致的
这是查看自己当前的字符集:
show variables like 'character_set_database';
这是查看数据库支持的字符集:
show charset
看看自己的校验集:
show variables like 'collation_database';
这是查看校验集:
show collation;
存在这个是因为
我是真的要红温了哦:
我恨你啊
你创建数据和取出数据的编码方式肯定是要一致的,我们也可以指定方式创建数据库:
create database db1 charset=utf8;
这是创建一个使用utf8字符集的db2数据库
你还可以指定校验规则:
create database db3 charset=utf8 collate utf8_general_ci;
这是创建一个使用utf字符集,并带校对规则的db3数据库
可是这些编码方式对数据库有着怎样的影响么?
我们试试就知道勒:
这是建个表:
create table if not exists person (name varchar(20));
这是看看详细的表内容:
接下来插入一些数据:
让瓦康康:
这是条件的筛选:
select * from person where name='a';
可以看到它并没区分大小写
那么!我们可以用另一个看看双方区别:
再次检索就会发现没了:
这就是区别哎
这是给这东西排序:
select * from person order by name;
但是切回数据库1捏?
默认都是升序排列哦
校验集会影响比较结果
数据库删改查
数据库能创建也能删除捏
DROP DATABASE [IF EXISTS] db_name;
很简单捏,一条语句就搞定了
但是用上的机会很少吧
直接删库跑路吗(删除前备份下)
执行删除之后的结果是数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
tips:不要随意删除数据库
这是查(我貌似说过):
显示创建语句:
show create database hellworld;
这个/*!80016.../的意思是,当前MySQL版本如果>那个版本就执行这句话
怎样修改数据库捏?
这样捏:
alter database test2 charset=gbk collate gbk_chinese_ci;
备份和恢复
要是要对数据库进行备份,就需要:
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
试试捏:
mysqldump -P3306 -uroot -p -B test1 > test1.sql
打开看看:
会发现被备份的不止数据,还有操作:
那备份要发挥备份的作用捏
我现在把原来的文件删掉捏
我试试能不能还原:
source 路径
收手吧阿祖
成功了捏
就是那么的简单捏
以上是库的操作和一些基础
我们再会咯~
这篇关于与MySQL邂逅的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!