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

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

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

阿铭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

相关推荐

每天一个编程技巧!掌握这7个神技,代码效率飙升200%

“同事6点下班,你却为改BUG加班到凌晨?不是你不努力,而是没掌握‘偷懒’的艺术!本文揭秘谷歌工程师私藏的7个编程神技,每天1分钟,让你的代码从‘能用’变‘逆天’。文末附《Python高效代码模板》,...

Git重置到某个历史节点(Sourcetree工具)

前言Sourcetree回滚提交和重置当前分支到此次提交的区别?回滚提交是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候。...

git工作区、暂存区、本地仓库、远程仓库的区别和联系

很多程序员天天写代码,提交代码,拉取代码,对git操作非常熟练,但是对git的原理并不甚了解,借助豆包AI,写个文章总结一下。Git的四个核心区域(工作区、暂存区、本地仓库、远程仓库)是版本控制的核...

解锁人生新剧本的密钥:学会让往事退场

开篇:敦煌莫高窟的千年启示在莫高窟321窟的《降魔变》壁画前,讲解员指着斑驳色彩说:"画师刻意保留了历代修补痕迹,因为真正的传承不是定格,而是流动。"就像我们的人生剧本,精彩章节永远...

Reset local repository branch to be just like remote repository HEAD

技术背景在使用Git进行版本控制时,有时会遇到本地分支与远程分支不一致的情况。可能是因为误操作、多人协作时远程分支被更新等原因。这时就需要将本地分支重置为与远程分支的...

Git恢复至之前版本(git恢复到pull之前的版本)

让程序回到提交前的样子:两种解决方法:回退(reset)、反做(revert)方法一:gitreset...

如何将文件重置或回退到特定版本(怎么让文件回到初始状态)

技术背景在使用Git进行版本控制时,经常会遇到需要将文件回退到特定版本的情况。可能是因为当前版本出现了错误,或者想要恢复到之前某个稳定的版本。Git提供了多种方式来实现这一需求。...

git如何正确回滚代码(git命令回滚代码)

方法一,删除远程分支再提交①首先两步保证当前工作区是干净的,并且和远程分支代码一致$gitcocurrentBranch$gitpullorigincurrentBranch$gi...

[git]撤销的相关命令:reset、revert、checkout

基本概念如果不清晰上面的四个概念,请查看廖老师的git教程这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我的修改存起来。后来用多了,也就明白了为什么。gi...

利用shell脚本将Mysql错误日志保存到数据库中

说明:利用shell脚本将MYSQL的错误日志提取并保存到数据库中步骤:1)创建数据库,创建表CreatedatabaseMysqlCenter;UseMysqlCenter;CREATET...

MySQL 9.3 引入增强的JavaScript支持

MySQL,这一广泛采用的开源关系型数据库管理系统(RDBMS),发布了其9.x系列的第三个更新版本——9.3版,带来了多项新功能。...

python 连接 mysql 数据库(python连接MySQL数据库案例)

用PyMySQL包来连接Python和MySQL。在使用前需要先通过pip来安装PyMySQL包:在windows系统中打开cmd,输入pipinstallPyMySQL ...

mysql导入导出命令(mysql 导入命令)

mysql导入导出命令mysqldump命令的输入是在bin目录下.1.导出整个数据库  mysqldump-u用户名-p数据库名>导出的文件名  mysqldump-uw...

MySQL-SQL介绍(mysql sqlyog)

介绍结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同...

MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南

在MySQL的世界里,二进制日志(Binlog)就是我们的"时光机"。它默默记录着数据库的每一个重要变更,就像一位忠实的史官,为我们在数据灾难中提供最后的救命稻草。本文将带您深入掌握如...