0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MySQL简易入门教程

阿铭linux 来源:阿铭linux 2023-01-09 09:36 次阅读

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.3MySQL安装(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)解压

tarJxfmysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
ln-smysql-8.0.31-linux-glibc2.12-x86_64mysql

3)创建用户

useradd -s /sbin/nologin  mysql

4)创建数据目录

mkdir-p/data/mysql
chown-Rmysql: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> usemysql;
mysql> UPDATEuserSETauthentication_string=""WHEREuser="root";##这里就是要删除掉原来密码

再次修改配置文件

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

重启服务

systemctl restart mysqld

再次登录MySQL

mysql -uroot

在MySQL命令行里,重置密码

mysql> usemysql;
mysql> ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'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"showdatabases"#-e后面跟要运行的命

16.6MySQL常用命令

1)查询库

mysql> show databases;

2)切换库

mysql> use mysql;

3)查看库里的表

mysql> show tables;

4)查看表里的字段

mysql> desc tb_name;

5)查看建表语句

show create table tb_nameG

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>showvariableslike'max_connect%';#过滤关键词

13)修改参数

mysql>setglobalmax_connect_errors=1000;#设置指定参数

14)查看队列

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

16.7 MySQL创建用户和授权

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

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

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

mysql>grantallon*.*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> showgrantsforuser2@192.168.133.1;

16.8常用sql语句

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

mysql>selectcount(*)frommysql.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>truncatetabledb1.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

    文章

    3754

    浏览量

    64253
  • 管理系统
    +关注

    关注

    1

    文章

    2391

    浏览量

    35788
  • MySQL
    +关注

    关注

    1

    文章

    799

    浏览量

    26413

原文标题:MySQL简易入门教程

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手把手教你入门MySQL零基础入门教程

    手把手教你入门MySQL零基础入门教程! 目前MySQL已经成为最为流行的开源关系数据库系统,并且一步一步地占领了原有商业数据库的市场。可以看到Google、Facebook、Yaho
    发表于 06-15 13:20

    MySQL零基础入门教程

    手把手教你入门MySQL零基础入门教程! 目前MySQL已经成为最为流行的开源关系数据库系统,并且一步一步地占领了原有商业数据库的市场。可以看到Google、Facebook、Yaho
    发表于 06-17 14:54

    免费分享: MySQL零基础入门教程

    免费分享: MySQL零基础入门教程! 目前MySQL已经成为最为流行的开源关系数据库系统,并且一步一步地占领了原有商业数据库的市场。可以看到Google、Facebook、Yahoo、网易、久游等
    发表于 08-11 09:56

    studio使用入门教程

    studio使用入门教程
    发表于 01-09 10:44 0次下载

    硬件工程师入门教程

    硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程硬件工程师入门教程
    发表于 01-05 15:53 257次下载

    C语言入门教程

    很好的C语言入门教程,可以肯定的说这个教程只是为初学或入门者准备的
    发表于 01-22 14:46 7次下载

    Java经典入门教程

    Java经典入门教程,PDF格式,经典教程。
    发表于 03-14 11:16 0次下载

    protel99se入门教程

    protel99se入门教程,单片机入门教程
    发表于 05-09 10:59 63次下载

    51单片机c51语言入门教程C语言入门教程

    51单片机c51语言入门教程,C语言入门教程
    发表于 08-29 15:02 32次下载

    arduino入门教程 非常适合入门

    arduino入门教程 非常适合入门
    发表于 09-21 09:20 67次下载
    arduino<b class='flag-5'>入门教程</b> 非常适合<b class='flag-5'>入门</b>

    MySQL 超级入门教程以及MySQL 资源大全的分享

    MySQL数据库入门看这篇就够了,非常全面!
    的头像 发表于 02-03 15:01 6995次阅读

    MySQL入门教程课件和笔记及函数等资料合集免费下载

    本文档的主要内容详细介绍的是MySQL入门教程课件和笔记及函数等资料合集免费下载主要内容包括了:1.认识数据库和mysql2.mysql连接3.入门语句4.基本增删改查5.详解列类型6
    发表于 12-19 08:00 19次下载

    Python经典入门教程

    Python的经典入门教程资料分享。
    发表于 06-01 10:25 116次下载

    硬件入门教程

    硬件入门教程
    发表于 07-04 14:49 77次下载

    PADS详细入门教程

    PADS 详细入门教程
    发表于 09-28 09:59 98次下载