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 |
+------+---------+
​
相关推荐
Android系统攻城狮10 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
晚安日记wanna13 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
晚安日记wanna13 小时前
索引建了却不走?7 个失效原因逐层排查
数据库·mysql·性能优化
传奇开心果编程13 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer
mmsx13 小时前
Android 地图数据链路:从 GDAL、KML 到多引擎适配
android·kotlin
2601_9689007714 小时前
大模型版本回归评估实战:从能力指标到额度口径的完整链路
android·数据挖掘·回归
ao-weilai16 小时前
MySQL数据库:基本查询
android·数据库·mysql
java1234_小锋16 小时前
【技术专题】Mysql8 数据库 - Mysql8 查询数据
数据库·mysql
事圆则缓17 小时前
Kotlin 泛型方差实战:out、in、星投影与类型擦除
android·开发语言·kotlin
ShineWinsu18 小时前
对于Redis:事务的解析
数据库·redis·mysql·缓存·面试·事务·acid