[Mariadb] 数据库学习笔记
- 在Linux中安装MySQL,YUM方式
- mariadb 介绍
- 安装启服务
- 初始配置
- 修改密码
 
- 密码策略,默认策略是1
- show variables; 查所有变量
- show variables like "%变量%"; 查特定的变量参数
- 临时:
- 永久:
 
 
- MySQL基本操作
- 连接SQL服务
- SQL命令使用规则
- SQL命令分类
- 库管理命令:库类似于文件夹,用来存储表
- 综合练习
 
 
在Linux中安装MySQL,YUM方式
新安装的MySQL,是没有密码的
 进入方法:
[root@control ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.17 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
配置密码:
mysql> alter user root@"localhost" identified by "111";
Query OK, 0 rows affected (0.00 sec)
[root@control ~]# mysql -uroot -p111
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.17 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mariadb 介绍
1)常见软件
 主流操作系统:Unix、Linux、Windows
			软件名		开源	跨平台	厂商
	Oracle		否	是	甲骨文
	MySQL		是	是	甲骨文
	SQL Server	否	否	微软
	DB2		否	是	IBM
	Redis		是	是	开源软件
	Memcached	是	是	开源软件
	MongoDB	是	是	开源软件
2)专业术语
	DB(DataBase)
		数据库
		依照某种数据模型进行组织并存放到存储器的数据集合
	DBMS(DataBase Management System)
		数据库管理系统
		用来操纵和管理数据库的服务软件
	DBS(DataBase System)
		数据库系统:即DB+DBMS
		指带有数据库并整合了数据库管理软件的计算机系统
3)MySQL介绍
	起源与发展:
		应用最广泛的开源数据库软件
			最早属于瑞典的MySQL AB公司
			2008年1月,MySQL AB被Sun收购
			2009年4月,SUN被Oracle收购
		崭新的开源分支MariaDB
			为应付 MySQL可能会闭源的风险而诞生
			由MySQL原作者 Widenius主导开发
			与MySQL保持最大程度兼容
4)特点与应用
	主要特点:
		适用于中小规模,关系型数据库系统
		支持Linux、Unix、Windows等多种操作系统
		支持Python、Java、Perl、PHP等编程语言
	典型应用环境:
		LAMP平台,与Apache HTTP Server组合
		LNMP平台,与Nginx组合
安装启服务
环境前提:关闭防火墙、selinux、YUM源
[root@myserver ~]# yum -y install mariadb-server
Last metadata expiration check: 1:24:11 ago on Thu 04 May 2023 09:23:23 AM UTC.
Package mariadb-server-3:10.3.17-1.module_el8.1.0+257+48736ea6.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@myserver ~]# systemctl start mariadb
[root@myserver ~]# systemctl enable mariadb
[root@myserver ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-05-04 06:21:27 UTC; 4h 26min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20175 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 23978)
   Memory: 85.6M
   CGroup: /system.slice/mariadb.service
           └─20175 /usr/libexec/mysqld --basedir=/usr
相关参数:
			/etc/my.cnf	主配置文件
			/var/lib/mysql	数据库目录
			默认端口号	3306
			进程名		mysqld
			传输协议		TCP
			进程所有者	mysql
			进程所属组	mysql
			错误日志文件	/var/log/mariadb/mariadb.log
初始配置
数据库管理员名为root
默认仅允许root本机连接
首次登陆密码在安装软件时随机生成
		
随机密码存储在日志文件/var/log/mysqld.log里
		
连接命令:mysql  -h数据库地址  -u用户  -p密码
grep  password  /var/log/mariadb/mariadb.log			##查看初始化密码
mysql  -hlocalhost  -uroot  -p'密码'			##使用初始化密码登陆数据库
例:
[root@myserver ~]# mysql -uroot -p222
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 20
Server version: 10.3.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| aab                |
| aac                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.003 sec)
MariaDB [(none)]>
修改密码
MariaDB [(none)]> alter user root@"localhost" identified by "111qwe..A";
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]> exit
Bye
[root@myserver ~]# mysql -uroot -p111qwe..A
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 22
Server version: 10.3.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
[root@myserver ~]#
密码策略,默认策略是1
修改密码策略
LOW(0) 长度
MEDIUM(1) 长度、数字、小写/大写、和特殊字符
STRONG(2) 长度、数字、小写/大写、和特殊字符、字典文件
show variables; 查所有变量
show variables like “%变量%”; 查特定的变量参数
临时:
	mysql  -uroot  -p密码				
	##临时修改密码策略,重启服务后会失效
	show  variables  like  "%password%";			
	##查看系统中和密码相关的变量
	set  global  validate_password_policy=0;			
	##设置密码策略为LOW,只检验长度
	set  global  validate_password_length=6;			
	##设置密码的长度最短为6位
	show  variables  like  "%password%";
永久:
	vim  /etc/my.cnf					##永久修改密码策略
	[mysqld]				
	validate_password_policy=0				
	##设置密码策略为LOW,只检验长度
	validate_password_length=6				
	##设置密码的长度最短为6位
	:wq
	
	systemctl  restart  mysqld
	mysql  -uroot  -p密码
	show  variables  like  "%password%";
例:
 我这里找到的密码策略和变量没有练习中的那些
MariaDB [(none)]> show variables like "%password%";
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| old_passwords              | OFF   |
| report_password            |       |
| strict_password_validation | ON    |
+----------------------------+-------+
3 rows in set (0.004 sec)
MySQL基本操作
连接SQL服务
连接方式:客户端连接MySQL服务的方法
命令行
web页面
安装图形软件
编写脚本(PHP、Java、Python…)
使用mysql 命令:
mysql -h服务器IP -u用户名 -p密码 [数据库名]
quit 或 exit 退出
2)数据存储流程
	客户端把数据存储到数据库服务器上的步骤
		连接数据库服务器
		建库			##相当于创建文件夹
		建表			##相当于创建文本文件
		插入记录			##相当于在文件文件中写入内容
		断开连接			
SQL命令使用规则
SQL命令不区分字母大小写(密码,变量值除外)
每条SQL命令以**;**结束
默认命令不支持Tab键自动补齐
\c 终止sql命令
SQL命令分类
	管理数据库使用SQL(结构化查询语言)
	DDL	数据定义语言:如 create、alter、drop
	DML	数据操作语言:如 insert、update、delete
	DCL	数据控制语言:如 grant、revoke
	DTL	数据事务语言:如 commit、rollback、savepoint
库管理命令:库类似于文件夹,用来存储表
	show  databases;		##显示已有的库
	select  user();		##显示连接用户
	use  库名;		##切换库
	select  database();		##显示当前所在的库
	create  database  库名;	##创建新库
	show  tables;		##显示已有的表
	drop  database  库名;	##删除库
例:
MariaDB [(none)]> show databases;     #显示已有的库
+--------------------+
| Database           |
+--------------------+
| aab                |
| aac                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.003 sec)
MariaDB [(none)]> select user();    #显示连接用户
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.002 sec)
MariaDB [(none)]> use mysql;     #切换库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> select database();     #显示当前所在的库
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.003 sec)
MariaDB [mysql]> create database aaa;   #创建库
Query OK, 1 row affected (0.003 sec)
MariaDB [mysql]> show tables;    #显示当前库已有的表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| column_stats              |
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| gtid_slave_pos            |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| index_stats               |
| innodb_index_stats        |
| innodb_table_stats        |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| roles_mapping             |
| servers                   |
| slow_log                  |
| table_stats               |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| transaction_registry      |
| user                      |
+---------------------------+
31 rows in set (0.002 sec)
MariaDB [mysql]> show databases;    
+--------------------+
| Database           |
+--------------------+
| aaa                |
| aab                |
| aac                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
6 rows in set (0.004 sec)
MariaDB [mysql]> drop database aaa;    # 删库
Query OK, 0 rows affected (0.003 sec)
MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| aab                |
| aac                |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)
综合练习




















