MySQL数据库入门

1、MySQL概述

MySQL官方网站

https://www.mysql.com/downloads/

MySQL被Oracle公司收购了,作者又重新编写了一个开源的数据库管理系统,Mariadb

2、MySQL产品&版本

2、数据库在网站架构中的角色

LAMP

LNMP网站架构

3、安装MySQL-基于yum

查看MySQL信息

查询mysql相关的软件包信息

查询mysql-server的软件信息

2、安装mysql-server

root@candy-nginx202 \~\]# yum install mysql-server -y ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8ed32f68efe34c19992a1f2c6273210b.png) 3、查询mysql-server是否安装成功 \[root@candy-nginx202 \~\]# rpm -q mysql-server ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9afa1f09099f4087839a87a31f4b3ac6.png) \[root@candy-nginx202 \~\]# rpm --help \|grep '-q' ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f2f00733bbe94267bd5914836405fe42.png) 检查防火墙是否关闭 sestatus ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1dca534d179c40d4a399d260d1bca648.png) systemctl status firewalld ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/eb6ea01b247d416c9320a4838011dda9.png) iptables -vnL ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/45ea6822b2294cec92ce10352f90f276.png) 4、启动MySQL,查看进程数量 \[root@candy-nginx202 \~\]# systemctl start mysqld \[root@candy-nginx202 \~\]# ps axu \| grep mysqld ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a14f0d033ea74ba1a5b65329afa3a40d.png) \[root@candy-nginx202 \~\]# ps -efL \| grep mysqld ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cfdf781bfc6e40b3907780cb95ce3ef2.png) \[root@candy-nginx202 \~\]# ps -efL \| grep -c mysqld ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f62f62fe875342f7b2c8cef75fd49625.png) ### 5、登录数据库系统 输入mysql指令即可登录MySQL数据库 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/461838fefd474011891e6d7696c406ab.png) 6、查询mysql库的user表的user、host、authentication_string字段的数据库信息 \[root@candy-nginx202 \~\]# mysql ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/85eeb8c4294244739e91a6e32d17941f.png) mysql\> select user,host,authentication_string from mysql.user; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8e599edaec464ec09c7b654a7c96787f.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2ae85f5fe138434e84ce3d7a842eb1be.png) ### 4、MySQL数据库常用指令 MySQL数据库常用命令涵盖了一系列操作,包括但不限于数据库的创建与管理、数据表的操作、数据的增删改查、用户权限管理以及服务器的维护等。以下是一些基础且常用的MySQL命令示例: mysql -u 用户名 -p 输入命令后,系统会提示输入密码。、 在MySQL命令行界面输入: quit 或 exit ### 2、显示所有数据库 SHOW DATABASES; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4a787a532c4c48fba45fa4640c07cd25.png) ### 3、创建数据库 CREATE DATABASE 数据库名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/eaddd6fa5d784464b86cf849a736ca5d.png) ### 4、删除数据库 DROP DATABASE 数据库名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8229698244414d7c9f8fc6a6580d9a55.png) ### 5、使用指定数据库 USE 数据库名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/58cedefcfada47a8bedeb75ee07a0ab7.png) ### 6、显示当前数据库中的所有表 SHOW TABLES; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d95d91a0a79440aaa84cec549822709c.png) ### 7、创建表 CREATE TABLE 表名 ( 列1 数据类型, 列2 数据类型, ... 列n 数据类型, PRIMARY KEY (主键列名) ); ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f7299ecee4bf477bb8c5c47dee5322e1.png) ### 8、删除表 DROP TABLE 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d5287b8cb2d14e34bee46d87e334af92.png) ### 9、插入数据 INSERT INTO 表名 (列1, 列2, ..., 列n) VALUES (值1, 值2, ..., 值n); ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/40e98a32c2a14b68a08769478ad1be90.png) ### 10、查询数据 SELECT 列1, 列2, ..., 列n FROM 表名 WHERE 条件; 筛选大于等于20岁的学生 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1c834cd65d8d49f1a8c6ea37614e810a.png) ### 11、更新数据 UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2, ..., 列n = 新值n WHERE 条件; 将年龄22岁的学生修改名字和邮箱 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/08562a67c6604dd092e9937dd27fa577.png) ### 12、删除数据 DELETE FROM 表名 WHERE 条件; 删除年龄为22岁的所有学生记录 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/649f4e6bd53242c79d02b9129a103a32.png) ### 13、创建索引 CREATE INDEX 索引名 ON 表名 (列名); ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7b5465ab645e471fbbba7cd2b4afa575.png) 可以创建多个复合索引 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/14ed49ca8dee45bf92c9a186c8a16e48.png) 您还可以为多个列创建复合索引,以便基于这些列的组合来加速查询 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/673040bfa5b04a4bb1f33b270e0b7cf5.png) ### 14、删除索引 DROP INDEX 索引名 ON 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4f366865e69249fcb509d02effc43d44.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/dd795170f724420eb73fbcb61dc02dea.png) 15、显示表结构 DESCRIBE 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/468f1733d64a4564acb2092b4e2efea5.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8cf670b1c7b344268ff7ea666ab3c809.png) Field 列显示了列名。 Type 列显示了列的数据类型。 Null 列显示了该列是否允许NULL值。 Key 列显示了该列是否被索引(PRI表示主键,UNI表示唯一索引,MUL表示非唯一索引)。 Default 列显示了列的默认值(如果有的话)。 Extra 列提供了额外的信息,如 auto_increment 表示该列是自动递增的,CURRENT_TIMESTAMP 表示该列在插入新记录时会自动设置为当前时间戳。 ### 16、显示存储过程 SHOW PROCEDURE STATUS; ### 17、创建存储过程 DELIMITER // CREATE PROCEDURE 存储过程名() BEGIN -- 存储过程体 END // DELIMITER ; DELIMITER 关键字被用来改变命令分隔符,以便在存储过程体内部可以包含多个分号(;),而不会被MySQL解释器错误地解释为命令的结束。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d1b87f80806b458eac148615b7926f79.png) ### 18、调用存储过程 CALL 存储过程名(); ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d10cf3ec8eb24cbbbde004dff93c183d.png) ### 19、显示存储过程的定义 SHOW CREATE PROCEDURE 存储过程名; ### 20、删除存储过程 DROP PROCEDURE 存储过程名; 这些命令仅涵盖了MySQL数据库的基本操作。实际应用中,您可能还需要使用更高级的SQL语句和功能。建议查阅MySQL官方文档以获取更多详细信息和示例。 **创建用户并授权** 创建一个用户newuser,并授予所有权限: ```bash grant all privileges on *.* to 'newuser'@'%' identified by 'password'; ``` 试图为新用户newuser授予所有权限,并允许该用户从任何主机(% 表示所有主机)连接到MySQL服务器,同时设置密码为password。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a0ebb1bb7d2a45589cf2660cc5ef414a.png) 授予所有用户权限: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f41b979182464b389b95137781bb6f3e.png) **修改用户密码** 修改newuser的密码: ```bash alter user 'newuser'@'%' identified by 'newpassword'; ``` 修改用户 newuser(从任何主机 % 连接)的密码为 newpassword ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/28f4b9869be7418180252d7c9add78f3.png) **回收权限** 回收newuser的所有权限: ```bash revoke all privileges, grant option from 'newuser'@'%'; ``` 先撤销所有全局权限,然后删除用户,再重新创建用户(如果需要的话),因为直接撤销所有权限可能比较复杂。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/290b4ca9d73b476c9f6623faa10df45a.png) my.cnf配置文件 \[root@candy-nginx202 binlog\]# cat /etc/my.cnf ```bash [client] # 设置客户端字符集 default-character-set=utf8mb4 [mysql] # 设置mysql客户端连接默认字符集 default-character-set=utf8mb4 [mysqld] # 设置服务器端字符集和校验规则 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 开启独立表空间 innodb_file_per_table=1 # 开启二进制日志,并设置路径 server-id=1 # 必须设置,用于GTID和主从复制 log_bin=/var/lib/mysql/binlog/mysql-bin.log # 替换为实际的日志存放路径 binlog_format=ROW # 使用ROW格式,支持GTID # 开启GTID gtid_mode=ON enforce_gtid_consistency=true # 如果是新部署的MySQL实例,可以不需要下面这行。如果是已有实例迁移到GTID,则需要执行全备恢复后加上 # init_sql='SET @@GLOBAL.GTID_PURGED="uuid:1-1";' # 替换uuid和序号为你自己的GTID # 可能还需要调整其他与GTID相关的设置,如auto_position等,具体根据实际情况和需求来定 ``` 5.4、查看数据目录大小 \[root@candy-nginx202 \~\]# cd /var/lib/mysql \[root@candy-nginx202 mysql\]# du -sh /var/lib/mysql/candy 2.8G /var/lib/mysql/candy \[root@candy-nginx202 mysql\]# du -sh /var/lib/mysql/binlog 4.3G /var/lib/mysql/binlog 5.5、查看服务器硬件配置 grep -c processor /proc/cpuinfo ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d734129e05c9470a9c0e5462e59e6263.png) free -g ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2674e92e7842471e90bdf2aa11e12c96.png) fdisk -l \| grep \[sh\]d ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c868676815b34999af1f8bed582e051c.png) 还应该使用其他命令,查看服务器的具体硬件信息,比如服务器型号,CPU核心,RAID配置,内存配置等。

相关推荐
消失在人海中1 小时前
把Excel数据文件导入到Oracle数据库
数据库·oracle·excel
Kookoos2 小时前
ABP vNext + EF Core 实战性能调优指南
数据库·后端·c#·.net·.netcore
LLLLLindream2 小时前
Redis-商品缓存
数据库·redis·缓存
柃歌2 小时前
【LeetCode Solutions】LeetCode 176 ~ 180 题解
数据结构·数据库·sql·算法·leetcode
pq113_63 小时前
OrangePi Zero 3学习笔记(Android篇)4 - eudev编译(获取libudev.so)
android·笔记·学习
一眼青苔3 小时前
如何在MySQL中实现类似Redis的PING命令的功能来检测连接状态?
数据库·redis·mysql
奔驰的小野码3 小时前
SpringAI实现AI应用-使用redis持久化聊天记忆
java·数据库·人工智能·redis·spring
hweiyu004 小时前
MySQL性能分析工具:SHOW PROCESSLIST
数据库·mysql
vvilkim5 小时前
SQL语言基础:从入门到掌握结构化查询语言
数据库·sql·oracle