系列文章目录
【MySQL 流浪之旅】 第二讲 MySQL 基础操作
目录
一、MySQL 登陆连接
MySQL 连接有两种方式:
- 客户端工具连接:如DBeaver、Navicat等;
- 通过命令行方式连接:
- TCP/IP连接:mysql –uroot -p -h[ip] -P[port]
- socket 连接:mysql –uroot –S /tmp/mysql.sock
mysql命令的常用参数:
- -u:指定登陆的用户名
- -p:指定登陆的用户名密码
- -h:远程连接时,指定需要登陆的主机的IP
- -P:指定端口
- -S:指定sock文件
- TCP/IP连接是指通过TCP/IP网络协议进行连接,通过IP+端口的方式进行连接,客户端与服务器端不在同一台机器上选择该种连接方式。
- Socket连接:在Linux和Unix环境下,可以通过socket文件进行连接,但是局限于客户端与服务端只能在同一台服务器上。
- 不指定参数的时候,默认通过socket方式登陆,且默认寻找/tmp/mysql.socket
- 两种方式指定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 | 执行SELECT…INTO 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密码情况下采用以下方式:
- 在my.cnf配置文件中添加skip-grant-tables(跳过授权表)
- 重启数据库后修改密码