MySQL数据库相关操作
2021-11-01 本文已影响0人
SILENCE_SPEAKS
一、数据库隔离级别
- 查询数据库当前隔离级别
select @@tx_isolation;
`mysql8以上`:select @@transaction_isolation;
- 修改隔离级别
<!--
隔离级别:
READ-UNCOMMITTED(读取未提交内容)
READ-COMMITTED(读取提交内容)
REPEATABLE-READ(可重读)
SERIALIZABLE(可串行化)
-->
set tx_isolation=‘READ-UNCOMMITTED’;
二、常用进程、锁命令
- 查看进程id
show processlist;
或
SELECT * FROM information_schema.PROCESSLIST;
- 查询正在执行的进程
SELECT * FROM information_schema.PROCESSLIST where length(info) >0;
- 查询正在执行的事务
<!--
trx_state:事务状态
trx_start:事务开始时间
trxrequestedlockid:innodblocks.lock_id
trxwaitstarted:事务开始等待的时间
trxmysqlthread_id:事务线程id
trxtableslocked:事务拥有多少个锁
trxisolationlevel:事务隔离级别
-->
SELECT * FROM information_schema.innodb_trx;
- 查询是否锁表
show OPEN TABLES where In_use > 0;
- 查看被锁住的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
- 查看等待锁定的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
- 杀掉锁表进程
kill 进程id
- 查看锁记录等待时间
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
三、mysql 允许特定IP访问
- 测试是否允许远程连接
# 命令
telnet ip地址 mysql访问端口号
# 出现以下命令说明不允许此ip访问
host ip地址 is not allowed to connect to this mysql server
- 允许特定客户端ip地址连接
# 登录mysql
mysql -u root -p
Enter password:
# 使用mysql
mysql> use mysql
# 开放指定ip访问数据库权限
mysql> GRANT ALL ON *.* to root@'ip地址' IDENTIFIED BY '服务器mysql密码';
# 刷新权限列表
mysql> FLUSH PRIVILEGES;
四、binlog
binlog有三种模式:ROW(行模式), Statement(语句模式), Mixed(混合模式)
1.ROW(行模式):记录那条数据修改了,注意:记录的是这条记录的全部数据,即使只更新了一个字段,binlog里也会记录所有字段的数据;
2.Statement(语句模式): 每一条会修改数据的sql都会记录在binlog中;
3.Mixed(混合模式):在Mixed模式下,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种。
- 开启和查看binlog
# 查看mysql的binlog模式
show variables like 'binlog_format'
# 查看mysql是否开启binlog同步功能
show variables like 'log_bin';
- binlog相关命令
#获取binlog文件日志列表
show binary logs
# 查看当前正在写入的binlog文件
show master status
# 查看master上的binlog文件
show master logs
#查看第一个binlog文件内容
show binlog events
# 查看指定binlog文件内容, 如:查看mysql-bin.000002文件内容
show binlog events 'mysql-bin.000002'