【MySQL 流浪之旅】 第二讲 MySQL 基础操作

发布时间:2024年01月23日

系列文章目录


【MySQL 流浪之旅】 第一讲 MySQL 安装

【MySQL 流浪之旅】 第二讲 MySQL 基础操作


目录

系列文章目录

一、MySQL 登陆连接

二、MySQL 基本信息查看

2.1. 查看数据库基本信息

2.2. 查看数据库连接情况

2.3. 查看数据库参数

三、MySQL 权限操作

四、MySQL 密码修改


一、MySQL 登陆连接

MySQL 连接有两种方式:

  1. 客户端工具连接:如DBeaver、Navicat等;
  2. 通过命令行方式连接:
  • TCP/IP连接:mysql –uroot -p -h[ip] -P[port]
  • socket 连接:mysql uroot S /tmp/mysql.sock

mysql命令的常用参数:

  • -u:指定登陆的用户名
  • -p:指定登陆的用户名密码
  • -h:远程连接时,指定需要登陆的主机的IP
  • -P:指定端口
  • -S:指定sock文件?
  1. TCP/IP连接是指通过TCP/IP网络协议进行连接,通过IP+端口的方式进行连接,客户端与服务器端不在同一台机器上选择该种连接方式。
  2. Socket连接:在Linux和Unix环境下,可以通过socket文件进行连接,但是局限于客户端与服务端只能在同一台服务器上。
  3. 不指定参数的时候,默认通过socket方式登陆,且默认寻找/tmp/mysql.socket
  4. 两种方式指定socket文件路径:1.-S指定 2.[client]配置文件中指定

二、MySQL 基本信息查看

2.1. 查看数据库基本信息

连接MySQL数据库后可以通过?\s?查看数据库基本信息:

2.2. 查看数据库连接情况

连接MySQL数据库后可以通过?show processlist?命令查看数据库连接情况:

  • Id:连接进程标识符。
  • User:执行语句的MySQL用户名称。如果显示的是“system user”,它指的是由服务器生成的非客户端线程正在执行内部任务。例如主备复制中从库上使用的I / O或SQL线程或延迟行处理程序的线程。
  • Host:执行语句的客户端的主机名(除了没有主机信息的“system user”之外)。
  • Db:客户端连接的默认数据库(如果连接时指定了库名),否则显示为NULL值
  • Command:线程正在执行的命令的类型。有关线程命令的说明,
  • Time:线程处于当前状态的时间数(以秒为单位)。
  • State:提示线程正在做什么样的操作,事件或状态。
  • Info:线程正在执行的语句,如果没有执行任何语句,则显示为NULL。语句可以是发送到服务器的语句,或者如果语句内部调用执行其他语句,即指的最内层调用的语句。例如,如果CALL语句调用存储过程,而存储过程中执行SELECT语句,则Info值将显示存储过程中的SELECT语句?

2.3. 查看数据库参数

1. 查看会话级别的参数值
show variables like ‘%binlog_format%’;

2. 查看全局global级别的参数值
show global variables like ‘%binlog_format%’;

3. 会话级别设置参数值
set binlog_format=ROW;

4. 修改全局global级别参数值
set global binlog_format=ROW;

5. 修改配置文件
通过修改配置文件修改参数值,需要重启生效,但是可以持久有效,下次数据库重启之后,仍然从配置文件中读取参数值。

三、MySQL 权限操作

1.创建用户 user 只可以通过 192.168.0.11 特定IP进行访问:

grant all on *.* to ‘user’@‘192.168.0.11’ identified by ‘user’;
flush privileges;

2.创建用户 user 可以通过任何IP进行访问:

grant all on *.* to ‘user’@‘%’ identified by ‘user’;
flush privileges;

3.创建用户 user 通过任何IP进行访问 但是账户只可以操作 user 库:

grant all on user.* to ‘user’@’%’ identified by ‘user’;
flush privileges;

4.回收 user 用户在所有数据库上的 delete 权限:

revoke delete on *.* from ‘user’@’%’;
flush privileges; 

5.回收 user 用户在 test 库上的 update 权限:

revoke update on test.* from ‘user’@’%’;
flush privileges;

权限

权限说明

CREATE

创建数据库、表或索引权限

DROP

删除数据库、表权限

INSERT

插入权限

UPDATE

更新权限

DELETE

删除权限

SELECT

查询权限

ALTER

执行DDL的权限

INDEX

索引相关权限

FILE

执行SELECTINTO OUTFILE权限

REPLICATION CLIENT

复制权限

REPLICATION SLAVE

复制权限

GRANT OPTION

为其他用户赋权限的权限

SUPER

Kill线程的权限

四、MySQL 密码修改

修改密码有以下三种方式:

--- 1.set password
set password for ‘root’@‘localhost’=password(’newpasswd’);

--- 2.mysqladmin
 mysqladmin -u root password oldpass “newpass”

--- 3.修改mysql.user表
update user set password = password(‘newpasswd’) where user =‘root’;
flush privileges;

注:丢失root密码情况下采用以下方式:

  1. 在my.cnf配置文件中添加skip-grant-tables(跳过授权表)
  2. 重启数据库后修改密码
文章来源:https://blog.csdn.net/yip1228/article/details/135688253
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。