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配置,内存配置等。

相关推荐
嘴对嘴编程8 分钟前
oracle数据泵操作
数据库·oracle
苹果酱056732 分钟前
Golang标准库——runtime
java·vue.js·spring boot·mysql·课程设计
QING6181 小时前
Kotlin Random.Default用法及代码示例
android·kotlin·源码阅读
QING6181 小时前
Kotlin Byte.inc用法及代码示例
android·kotlin·源码阅读
QING6181 小时前
Kotlin contentEquals用法及代码示例
android·kotlin·源码阅读
·薯条大王6 小时前
MySQL联合查询
数据库·mysql
morris1318 小时前
【redis】redis实现分布式锁
数据库·redis·缓存·分布式锁
hycccccch8 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
这个懒人9 小时前
深入解析Translog机制:Elasticsearch的数据守护者
数据库·elasticsearch·nosql·translog
每次的天空9 小时前
Android学习总结之算法篇四(字符串)
android·学习·算法