百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

MySQL简易入门教程_mysql入门很简单 视频

wptr33 2025-02-17 14:17 23 浏览

阿铭linux近16年的IT从业经验,6年+鹅厂运维经验,6年+创业公司经验,熟悉大厂运维体系,有从零搭建运维体系的实战经验。关注我,学习主流运维技能,让你比别人提升更快,涨薪更多!

16.1 MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

16.2 MySQL版本

MySQL分社区版和商业版,社区版也就是开源版本,完全免费,而商业版要比社区版多了一些商业定制功能,需要收费。而本教程中介绍的是社区版。

目前MySQL社区版有两个主流活跃版本:5.7和8.0。据我观察,MySQL每隔3个月就会发一个小版本,更新迭代速度非常快。

截至阿铭发表此文章时,5.7最新版本为5.7.40,而8.0最新版本为8.0.31。由于个别应用开发环境使用的是5.7.x,所以我们只能使用5.7.x版本的MySQL。如果没有特殊要求,一定要用8.0,因为8.0版本的MySQL要比5.7快不少。

本教程中,阿铭使用的是8.0.31。5.7版本和8.0版本在使用上稍有差异,但差异不太大。

16.3 MySQL安装(Centos/Rocky/Ubuntu都一样)

1)下载

cd  /usr/local
curl -O https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

2)解压

tar Jxf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.31-linux-glibc2.12-x86_64 mysql

3)创建用户

useradd -s /sbin/nologin  mysql

4)创建数据目录

mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql

5)定义配置文件

vi  /etc/my.cnf  #写入如下内容
[mysql]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
pid-file = /data/mysql/mysqld.pid
log-error = /data/mysql/mysql.err

6)安装依赖

##Rocky / CentOS
yum install -y ncurses-compat-libs-6.1-9.20180224.el8.x86_64  libaio-devel
## Ubuntu
sudo  apt install  libaio-dev libtinfo5

7)初始化

/usr/local/mysql/bin/mysqld --console --initialize-insecure --user=mysql   ## initialize-insecure使用空密码

8)启动

vi /usr/lib/systemd/system/mysqld.service  #写如下内容
[Unit]
Description=MYSQL server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize $OPTIONS
ExecReload=/bin/kill -HUP -$MAINPID     #这里-HUP可以是改成-s HUP,就变成强制杀进程,有需要可以改,下面也一样
ExecStop=/bin/kill -QUIT $MAINPID        #-s QUIT是强制杀进程
KillMode=process
LimitNOFILE=65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false

重新加载并启动服务

sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld

9)配置环境变量

vi  /etc/profile  #最后面增加下面一行内容
export PATH=$PATH:/usr/local/mysql/bin

然后执行下面命令,使其生效

sudo source  /etc/profile

10)设置密码

mysqladmin -uroot  password  'your_new_passwd'


16.4 重置MySQL root密码

MySQL root为管理员用户,如果root用户密码忘记,我们是有方法来重置的。

修改配置文件

vi /etc/my.cnf  #增加skip-grant-tables

重启mysql服务

systemctl  restart mysqld

登录MySQL

mysql -uroot

在MySQL命令行里执行:

mysql> use mysql;
mysql> UPDATE user SET authentication_string="" WHERE user="root";  ##这里就是要删除掉原来密码

再次修改配置文件

 vi /etc/my.cnf  #删除skip-grant-tables 参数

重启服务

systemctl restart mysqld

再次登录MySQL

mysql -uroot

在MySQL命令行里,重置密码

mysql> use mysql; 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aminglinux.com';
mysql> flush privileges;


16.5 连接MySQL

1)连接本机的MySQL

mysql -uroot -pAminglinux.com #-p后面跟密码,如果有特殊符号要带单引号,-p后面不用带空格

2)连接远程机器

 mysql -uroot -pAminglinux.com -h127.0.0.1 -P3306 #-P后面跟端口号

3)使用socket文件连接(本地)

mysql -uroot -pAminglinux.com -S/tmp/mysql.sock #-S后面g跟socket文件路径

4)直接在shell里运行MySQL命令

mysql -uroot -pAminglinux.com -e "show databases" #-e后面跟要运行的命


16.6 MySQL常用命令

1)查询库

mysql> show databases;

2)切换库

mysql> use mysql;

3)查看库里的表

mysql> show tables;

4)查看表里的字段

mysql> desc tb_name;

5)查看建表语句

show create table tb_name\G

6)查看当前用户

mysql> select user();

7)查看当前使用的数据库

mysql> select database();

8)创建库

mysql> create database db1;

9)创建表

mysql> use db1; create table t1(`id` int(4), `name` char(40));

10)查看当前数据库版本

mysql> select version();

11)查看数据库状态

mysql> show status;

12)查看各参数

mysql> show variables; #查看所有参数
mysql> show variables like 'max_connect%'; #过滤关键词

13)修改参数

mysql> set global max_connect_errors=1000; #设置指定参数

14)查看队列

mysql> show processlist; 
mysql> show full processlist; #显示的更全


16.7 MySQL创建用户和授权

1)创建用户,客户端允许为所有

mysql> create user 'user1'@'%' identified by 'Abc.123.com';

2)授权所有权限,所有库,所有表

mysql> grant all on *.* to 'user1' ;#all表示所有权限(比如,select/update/insert/delete等全部权限),第一个*表示所有库,第二个*表示所有表

3)创建用户,客户端允许某个IP段

mysql> create user 'user2'@'192.168.133.%' identified by 'passwd';

4)授权指定权限

mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1';

5)查看授权情况

mysql> show grants;
mysql> show grants for user2@192.168.133.1;


16.8 常用sql语句

SQL是关系型数据库的核心,除了MySQL外,其它关系型数据库也是用这些SQL。下面阿铭就给大家列几个最常用的SQL命令。

mysql> select count(*) from mysql.user; #查表的行数
mysql> select * from mysql.db; #查表的所有内容
mysql> select db from mysql.db; #查看db表里db列内容
mysql> select db,user from mysql.db; #查看多列
mysql> select * from mysql.db where host like '192.168.%'; #查看表内容,设定条件
mysql> insert into db1.t1 values (1, 'abc'); #插入数据
mysql> update db1.t1 set name='aaa' where id=1; #插入数据,带条件
mysql> truncate table db1.t1; #清空表
mysql> drop table db1.t1; #删除表
mysql> drop database db1; #删除库


16.9 mysql数据库备份和恢复

1)备份库

mysqldump -uroot -pAminglinux.com mysql > /tmp/mysql.sql

2)恢复库

mysql -uroot -pAminglinux.com mysql < /tmp/mysql.sql

3)备份表

mysqldump -uroot -pAminglinux.com mysql user > /tmp/user.sql

4)恢复表

mysql -uroot -pAminglinux.com mysql < /tmp/user.sql

5)备份所有库

mysqldump -uroot -p -A >/tmp/123.sql

6)备份指定库

mysqldump -uroot -p -B db1 db2 > /tmp/db1_db2.sql

7)只备份表结构

mysqldump -uroot -pAminglinux.com -d mysql > /tmp/mysql.sql

相关推荐

什么是Java中的继承?如何实现继承?

什么是继承?...

Java 继承与多态:从基础到实战的深度解析

在面向对象编程(OOP)的三大支柱中,继承与多态是构建灵活、可复用代码的核心。无论是日常开发还是框架设计,这两个概念都扮演着至关重要的角色。本文将从基础概念出发,结合实例与图解,带你彻底搞懂Java...

Java基础教程:Java继承概述_java的继承

继承概述假如我们要定义如下类:学生类,老师类和工人类,分析如下。学生类属性:姓名,年龄行为:吃饭,睡觉老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管...

java4个技巧:从继承和覆盖,到最终的类和方法

日复一日,我们编写的大多数Java只使用了该语言全套功能的一小部分。我们实例化的每个流以及我们在实例变量前面加上的每个@Autowired注解都足以完成我们的大部分目标。然而,有些时候,我们必须求助于...

java:举例说明继承的概念_java继承的理解

在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物,同理,...

从零开始构建一款开源的 Vibe Coding 产品 Week1Day4:业界调研之 Agent 横向对比

前情回顾前面两天我们重点调研了了一下Cursor的原理和Cursor中一个关键的工具edit_file的实现,但是其他CodingAgent也需要稍微摸一下底,看看有没有优秀之处,下...

学会这几个插件,让你的Notepad++使用起来更丝滑

搞程序开发的小伙伴相信对Notepad++都不会陌生,是一个占用空间少、打开启动快的文件编辑器,很多程序员喜欢使用Notepad++进行纯文本编辑或者脚本开发,但是Notepad++的功能绝不止于此,...

将 node_modules 目录放入 Git 仓库的优点

推荐一篇文章Whyyoushouldcheck-inyournodedependencies[1]...

再度加码AI编程,腾讯发布AI CLI并宣布CodeBuddy IDE开启公测

“再熬一年,90%的程序员可能再也用不着写for循环。”凌晨两点半,王工还在公司敲键盘。他手里那份需求文档写了足足六页,产品经理反复改了三次。放在过去,光数据库建表、接口对接、单元测试就得写两三天。现...

git 如何查看stash的内容_git查看ssh key

1.查看Stash列表首先,使用gitstashlist查看所有已保存的stash:...

6万星+ Git命令懒人必备!lazygit 终端UI神器,效率翻倍超顺手!

项目概览lazygit是一个基于终端的Git命令可视化工具,通过简易的TUI(文本用户界面)提升Git操作效率。开发者无需记忆复杂命令,即可完成分支管理、提交、合并等操作。...

《Gemini CLI 实战系列》(一)Gemini CLI 入门:AI 上命令行的第一步

谷歌的Gemini模型最近热度很高,而它的...

deepin IDE新版发布:支持玲珑构建、增强AI智能化

IT之家8月7日消息,深度操作系统官方公众号昨日(8月6日)发布博文,更新推出新版deepin集成开发环境(IDE),重点支持玲珑构建。支持玲珑构建deepinIDE在本次重磅更...

狂揽82.7k的star,这款开源可视化神器,轻松创建流程图和图表

再不用Mermaid,你的技术文档可能已经在悄悄“腐烂”——图表版本对不上、同事改完没同步、评审会上被一句“这图哪来的”问得哑口无言。这不是危言耸听。GitHub2025年开发者报告显示,63%的新仓...

《Gemini CLI 实战系列》(五)打造专属命令行工具箱

在前几篇文章中,我们介绍了GeminiCLI的基础用法、效率提升、文件处理和与外部工具结合。今天我们进入第五篇...