mysql基础

数据库(Database)是按照数据结构来组织、存储和管理数据的,是建立在计算机存储设备上的仓库。简单来说是本身可视为电子化的文件柜------存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

1、rpm安装部署

复制代码
[root@rhel93 ~]# yum install mysql-server -y
[root@rhel93 ~]# ll /etc/my.cnf
-rw-r--r--. 1 root root 202  3月 28  2022 /etc/my.cnf
[root@rhel93 yum.repos.d]# ll /etc/my.cnf.d/
总用量 8
-rw-r--r--. 1 root root 295  3月 28  2022 client.cnf
-rw-r--r--. 1 root root 612  3月 23  2023 mysql-server.cnf
[root@rhel93 ~]# grep ^[^#] /etc/my.cnf.d/mysql-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
[root@rhel93 ~]# systemctl start mysqld
#查看临时密码,rpm安装的默认是空密码,其它安装方式使用如下命令查看密码
[root@rhel93 ~]# grep password  /var/log/mysql/mysqld.log
​

2、连接数据库

2.1 本地连接访问

复制代码
[root@rhel93 ~]# mysql -uroot -p
Enter password:    #在此直接回车,不用输入密码,因为是空密码
mysql>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin123';
mysql> exit
#使用密码登录
[root@rhel93 ~]# mysql -uroot -padmin123

2.2 用户授权

复制代码
mysql> create user xiaoming@'%' identified by '123';
mysql> grant all privileges on *.* to 'xiaoming'@'%';
#本地验证可以登录
[root@rhel93 ~]# mysql -uxiaoming -p123
#关闭防火墙
[root@rhel93 ~]# systemctl disable --now firewalld
#如果需要使用rhel7版本镜像中的mysql登录该版本mysql-server,需要设定密码插件为mysql_native_password
mysql> create user 'rep'@'%' identified WITH mysql_native_password  by '123';
mysql> grant all privileges on *.* to 'rep'@'%';

2.3 远程登录验证权限

复制代码
#安装客户端mysql指令
[root@rhel79 yum.repos.d]# yum install mysql -y
[root@rhel79 ~]# mysql -uxiaoming -p123 -h 192.168.168.197
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
[root@rhel79 ~]# mysql -urep -p123 -h 192.168.168.197
MySQL [(none)]> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| rep              | %         |
| xiaoming         | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
#查看当前的登录账号
MySQL [(none)]> select user();
+---------------------+
| user()              |
+---------------------+
| rep@192.168.168.198 |
+---------------------+
​

回收权限

复制代码
mysql> revoke all on *.* from xiaoming;
Query OK, 0 rows affected (0.00 sec)
mysql> revoke all on *.* from rep@'%';

2.4 修改客户端提示符

复制代码
[root@rhel93 ~]# vim /etc/my.cnf.d/client.cnf
[client]
prompt=mysql8 [\\d]>
​
[root@rhel93 ~]# mysql -uroot -padmin123
mysql8 [(none)]>use chap03;
mysql8 [chap03]>

3、mysql库表操作

3.1 mysql库操作

复制代码
mysql> show databases;
mysql> show databases like '__s%';
mysql> create database chap03;
mysql> drop database chap03;
mysql> use mysql
mysql> select database();
mysql> show tables from mysql;

3.2 mysql表操作

复制代码
mysql> use chap03
mysql> create table t1(id int,name char(30));
mysql> desc t1;
mysql> drop table  t1;

增删改查数据

复制代码
mysql> insert t1 values (1,'xiaoming');
mysql> insert into t1(id,name) values (5,'xiaolv'),(6,'xiaobai');
mysql> select * from t1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | xiaoming |
|    5 | xiaolv   |
|    6 | xiaobai  |
+------+----------+
mysql> delete  from t1  where id=1;
Query OK, 1 row affected (0.00 sec)
​
mysql> select * from t1;
+------+---------+
| id   | name    |
+------+---------+
|    5 | xiaolv  |
|    6 | xiaobai |
+------+---------+
mysql> update t1 set id=1 where id=5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
​
mysql> select * from t1;
+------+---------+
| id   | name    |
+------+---------+
|    1 | xiaolv  |
|    6 | xiaobai |
+------+---------+
​

4、数据库的备份和还原

备份整个数据库的所有表

复制代码
[root@rhel93 ~]# mysqldump -uroot -padmin123 --all-databases > /mysql/mysql-all.backup
​
#删除库
[root@rhel93 ~]# mysql -uroot -padmin123
mysql> drop database chap03;
mysql> select * from chap03.t1;
#恢复后查看
[root@rhel93 ~]# mysql -uroot -padmin123 < /mysql/mysql-all.backup
[root@rhel93 ~]#  mysql -uroot -padmin123
mysql> select * from chap03.t1;
+------+---------+
| id   | name    |
+------+---------+
|    5 | xiaolv  |
|    6 | xiaobai |
+------+---------+
2 rows in set (0.00 sec)

只备份表

复制代码
[root@rhel93 ~]# mysqldump -uroot -padmin123 chap03 t1 > /mysql/mysql-t1.backup
#测试
mysql> drop table chap03.t1;
#恢复数据
[root@rhel93 ~]# mysql -uroot -padmin123
mysql> use chap03
mysql> source  /mysql/mysql-t1.backup
mysql> select * from t1;
+------+---------+
| id   | name    |
+------+---------+
|    5 | xiaolv  |
|    6 | xiaobai |
+------+---------+
​
相关推荐
Mr YiRan1 小时前
网络请求API监控与网络切换埋点
android·网络
美狐美颜sdk4 小时前
直播APP开发技术栈详解:视频美颜SDK、人脸识别与实时渲染
android·人工智能·音视频·美颜sdk·直播美颜sdk
独泪了无痕7 小时前
SQL函数实战:GREATEST与LEAST的技巧
数据库·sql·mysql
麻辣布丁7 小时前
MySQL篇面试题模拟
mysql
这个DBA有点耶8 小时前
MySQL 8.0.20移除了Block Nested Loop,之前学的JOIN优化知识还适用吗?
数据库·mysql·架构
奈斯先生Vector10 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
TimeFine10 小时前
让强模型做“总工”,让高性价比模型写代码
android
又见情义11 小时前
RK3568 Android 13 屏蔽 healthd 电池日志经验分享
android
开心麻瓜12 小时前
一条 SQL 跑了 8 秒,优化到 200ms 的全过程
mysql
FYKJ_201013 小时前
【毕设分享】基于Web的校园兼职信息发布与申请系统07059
前端·vue.js·spring boot·mysql·typescript·spark·课程设计