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 |
+------+---------+
​
相关推荐
JLWcai202510096 小时前
核电打磨 “安全卫士”|金利威不锈钢专用树脂砂轮,合规高效双在线
mysql·mongodb·eureka·sqlite·rabbitmq·nosql·memcached
程序员-Benothing8 小时前
MySQL 的覆盖索引是什么?
数据库·mysql
星恒讯工业路由器9 小时前
MIMO与多天线技术:从5G到WiFi的工程解析
数据库·mysql·5g·工业物联网·mimo技术·天线隔离度·5g/wifi多天线
消失的旧时光-19439 小时前
第 2 篇:Android 控制屏为什么与机器人主控使用 TCP 长连接?
android·tcp/ip·机器人
小Ti客栈9 小时前
MySQL查询原理:从Server到InnoDB
android·mysql·adb
2501_9378609410 小时前
MySQL数据库入门|从零搞懂数据库基础、架构与存储引擎
数据库·mysql·架构
纪念 22911 小时前
MySQL(题目讲解二)
android·数据库·mysql
西凉的悲伤11 小时前
Java 基于 MySQL 行锁实现高并发业务序列号生成器
java·mysql·springboot·序列号生成
你听得到1111 小时前
排查 App 问题:别只盯着报错,把前后发生的事情串起来
android·前端·flutter
淡淡的香烟11 小时前
Android智能猫砂盆视频加载慢卡顿问题分析
android·服务器·音视频