回顾基本语句:
数据定义语言
(
DDL
)
。这类语言用于定义和修改数据库的结构,包括创建、删除和修改数据库、表、视图和索引等对象。主要的语句关键字包括
CREATE
、
DROP
、
ALTER
、
RENAME
、
TRUNCATE
等。
- create database 数据库 ;
- create table 表 (列1 数据类型 [ 约束条件], 列2 数据类型 【约束条件】……) add CONTRAINT 增加一些主键或者外键的约束
- drop table/ drop database;
- truncate 表;
- rename 旧表名 TO 新表名 ;
- alter 表 add 列 / drop 列 /
- create view (虚表) / drop view
- create user / drop user
数据操作语言
(DML
)
。用于添加、删除、更新和查询数据库中的记录。这些语句是关系型数据库的核心,用于操作表中的数据。主要的语句关键字包括
INSERT
、
DELETE
、
UPDATE
、
SELECT
等。
- select 表的数据查询 from 表 WHERE 过滤条件 group by 列 order by ;
- insert into 表(列1……)values (一行数据【和列是对应输入的】), (第二行数据)……;
- update 表 SET 列 = 值 where 过滤条件 (定位修改的数据行);
- delete from 表 where 过滤条件;
数据控制语言
(
DCL
)
。用于定义和管理数据库、表、字段或用户的访问权限和安全级别。主要的语
句关键字包括
GRANT
、
REVOKE
、
COMMIT
、
ROLLBACK
等。
- GRANT // 数据库用户的授权 对应权限的内容见 MySQL CRASH COURSE p257 表 28.1
- revoke // 数据库用户权限的回收【撤销】
- commit / rollback // 对于事务的提交和回滚 【第26章】
数据查询语言
(DQL)
。这是专门用于从数据库中检索数据
/ f
- select cur();
- select version();
联合查询等
- join
- UNION
一、安装
1.
源码编译安装
1. 获取源码
1. boost(包含这个组件的源码包
2. cmake ---> 生成
makefile
3. make
4. make install
5. 进行一些基础的优化
2.
二进制 (软件包中包括已经编译完成的二进制程序以及需要的文件和配置文件
1. 直接获取安装需要的所有软件包的
bundle
包 ,然后进行安装
【
mysql
安装】
2. 直接配置
mysql
官方的仓库
通过yum
仓库安装
1. 添加 yum 仓库[root@bogon ~]# wget https://repo.mysql.com//mysql80-community- release-el8-9.noarch.rpm--2024-04-27 20:31:45-- https://repo.mysql.com//mysql80-communityrelease-el8-9.noarch.rpmResolving repo.mysql.com (repo.mysql.com)... 23.210.109.97,2a02:26f0:d8:980::1d68, 2a02:26f0:d8:98f::1d68Connecting to repo.mysql.com (repo.mysql.com)|23.210.109.97|:443...connected.HTTP request sent, awaiting response... 200 OKLength: 17792 (17K) [application/x-redhat-package-manager]Saving to: ‘mysql80-community-release-el8-9.noarch.rpm’mysql80-community-release-el8-9 100%[=====================================================>] 17.38K --.-KB/s in 0.006s2024-04-27 20:31:45 (3.02 MB/s) - ‘mysql80-community-release-el8-9.noarch.rpm’ saved [17792/17792][root@bogon ~]# lsaaa Desktop Downloads Musicoriginal-ks.cfg Public Videosanaconda-ks.cfg Documents keys mysql80-community-releaseel8-9.noarch.rpm Pictures Templates[root@bogon ~]# rpm -ivh mysql80-community-release-el8-9.noarch.rpm[root@bogon ~]# ls /etc/yum.repos.d/aa.repo bb.repo mysql-community-debuginfo.repo mysqlcommunity.repo mysql-community-source.repo redhat.repo[root@bogon ~]# yum -y remove mysql* mariadb*[root@bogon ~]# yum module disable mysql -y# 可选 , 如果已经在系统中进行了相关数据的安装( mariadb 以及 mysql )# rpm -qa | egrep 'mysql|mariadb'# 如果有提示任何包的安装信息,需要先卸载对应的包,然后再禁用下面的模块# yum module -y disable mysql # 禁用原本启用的 mysql 模块 ,后续安装时,可以使用第一步所设置的仓库进行安装2. 安装 server 包[root@bogon ~]# yum install mysql-community-server3. 启动服务完成数据的初始化创建基本的数据库和表完成 mysql 超级用户 root@localhost 的创建以及密码的生成(限制 root 用户 只能从mysql 运行的节点登录)[root@mysql8 ~]# systemctl start mysqld# 抓取用户密码[root@mysql8 ~]# grep password /var/log/mysqld.log2024-04-28T00:27:27.590106Z 6 [Note] [MY-010454] [Server] Atemporary password is generated for root@localhost: f%EqxVUy9d5u# 修改密码[root@mysql8 ~]# mysql -u root -p'f%EqxVUy9d5u' -h localhostmysql: [Warning] Using a password on the command line interface canbe insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.36Copyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current inputstatement.mysql> alter user root@localhost identified by 'Redhat12~';Query OK, 0 rows affected (0.01 sec)
3.
补充
MySQL
用户管理
默认情况下,只要
root@localhost
,也就是说 只能通过
127.0.0.1
建立连接并连接到数据库,
一旦在连接数据库时,不是使用
127.0.0.1
就会拒绝请求
[root@mysql8 ~]# mysql -u root -p'Redhat12~' -h localhostmysql: [Warning] Using a password on the command line interface canbe insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 15Server version: 8.0.36 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.[root@mysql8 ~]# mysql -u root -p'Redhat12~' -h 192.168.110.50mysql: [Warning] Using a password on the command line interface canbe insecure.ERROR 1130 (HY000): Host '192.168.110.50' is not allowed to connectto this MySQL server-h 192.168.110.50 // 指定数据库服务器的 IP 地址
需要先创建对应客户端
IP
地址的用户,才可以访问
mysql-1: 192.168.110.50
bogon: 192.168.110.131
# 从 localhost 登录,授权可以从 192.168.110.50 登录[root@mysql8 ~]# mysql -u root -p'Redhat12~' -h localhostmysql: [Warning] Using a password on the command line interface can beinsecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 15Server version: 8.0.36 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.mysql> create user root@'192.168.110.50' identified by 'Redhat12~';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> exitBye再次尝试[root@mysql8 ~]# mysql -u root -p'Redhat12~' -h 192.168.110.50mysql: [Warning] Using a password on the command line interface can beinsecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 13Server version: 8.0.36 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current inputstatement.mysql> use mysql; // 其实是一个全新为授权任何库或者表,或者语句,因此除了登录// 什么也不能干// 通过 select * from mysql.user 发现新建的名为 root// 主机名为 192.168.110.50 的用户任何权限都没有ERROR 1044 (42000): Access denied for user 'root'@'192.168.110.50' todatabase 'mysql'mysql> exitBye因为只授权了 可以从 192.168.110.50 登录,在 192.168.110.131 上是无法登录的[root@bogon ~]# mysql -u root -p'Redhat12~' -h 192.168.110.50mysql: [Warning] Using a password on the command line interface can beinsecure.ERROR 1130 (HY000): Host '192.168.110.131' is not allowed to connect to thisMySQL server# 引申:如果需要从 192.168.110.131 登录数据库 就需要再授权一个用户可以从192.168.110.131 登录lampgrant all webapp.* to appuser@'192.168.110.%' identified by 'mima';
4.
升级降级
1. 确定安装方式
2. 数据迁移
二、配置
调整数据库管理系统的密码策略
MySQL :: MySQL 8.0 Reference Manual :: 8.4.3.2 Password Validation Options and Variableshttps://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html