mysql-维护相关 SQL mysql


# MySQL - 基于ibd文件恢复表数据

https://abc.htmltoo.com/thread-46656.htm

# MySQL数据恢复工具-binlog2sql

https://abc.htmltoo.com/thread-46462.htm

# mysql,优化SQL语句,慢日志分析

https://abc.htmltoo.com/thread-46296.htm

# sql_helper - mysql索引优化

https://abc.htmltoo.com/thread-46704.htm

# mysqlstat - 实时监控和分析MySQL

https://abc.htmltoo.com/thread-46703.htm

# slowquery - 慢查询分析

https://abc.htmltoo.com/thread-46743.htm

# mysql-binlog清除

https://abc.htmltoo.com/thread-46460.htm


# 注意-P为大写; -A为数据库太大,取消预读数据库信息,加快速度.

mysql -A  -u root -p 123456  -h localhost  -P端口


status;  # 查看版本

 

# 仅备份数据库结构

mysqldump -uroot -pwdqdmm@r -d cndob > /data/file/mysql/$(date +%Y%m%d)/cndob.sql;

# 导出单个数据表结构和数据
mysqldump -uroot -pwdqdmm@r  database table > /data/file/mysql/$(date +%Y%m%d)/cndob.sql;

# 备份数据库结构,数据

mysqldump -uroot -pwdqdmm@r cndob > /data/file/mysql/$(date +%Y%m%d)/cndob.sql;

mysqldump -uroot -pwdqdmm@r --all-databases  > /data/file/mysql/$(date +%Y%m%d)/mysql.sql;

# 备份

mysqldump -u'root' -p'wdqdmm@r'   -h'127.0.0.1' -P'3306'  --all-databases  --ignore-table=information_schema.*  --ignore-table=performance_schema.*  --ignore-table=mysql.*   --ignore-table=sys.*   --triggers --routines --events  > /data/file/mysql/mysql.sql;

-压缩, 解压用:  gunzip mysql.sql.gz;

--events  |  /usr/bin/gzip  > /data/file/mysql/mysql.sql.gz;

-备份过程中锁定表,防止数据被修改

--lock-all-tables

--lock-tables

-跳过表锁

--lock-tables=0

-跳过库,表

--ignore-table=information_schema.*  --ignore-table=performance_schema.*  --ignore-table=mysql.*   --ignore-table=sys.*  

-事务锁定表

--single-transaction

-备份触发器

--triggers 

-备份存储过程

--routines 

--events

# --set-gtid-purged=OFF

mysqldump --all-databases --set-gtid-purged=OFF  --triggers --routines --events   -u'root' -h'127.0.0.1' -p'wdqdmm@r' -P'3306'  | /usr/bin/gzip > /opt/mysql.sql.gz;


-压缩

| bzip2 > mysql.sql.bz2

| gzip > mysql.sql.gz


-Linux 解压缩 保留源文件的方法

gunzip -c mysql.sql.gz > mysql.sql

-Linux 解压缩(不保留源文件)

gzip -dv mysql.sql.gz

gunzip -c mysql.sql.gz

bzip2 -d  mysql.sql.bz2


不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……

mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user


--events, -E

导出事件。

--triggers

导出触发器。该选项默认启用,用--skip-triggers禁用它。

--routines, -R

导出存储过程以及自定义函数。


mysql -A -uroot -pwdqdmm@r  -hmariadb -P3306;

mysql -A -uroot -pwdqdmm@r  -h127.0.0.1

mysql -A -uroot -pwdqdmm@r;  # 登陆

use mysql;

show databases;  # 查看所有数据库

select host,user from mysql.user;   # 查看所有用户

CREATE DATABASE cndob;  # 新建数据库

DROP DATABASE cndob;     # 删除数据库


mysql8:

use mysql;

drop user ihunter@'%';     # 删除

drop user root@'%';     # 删除

create user ihunter@'%' identified  by '***';  # 增加

grant all privileges on *.* to ihunter@'%' with grant option;

grant replication slave on *.*  to 'slave'@'%';

ALTER USER ihunter@'%' IDENTIFIED WITH mysql_native_password BY '***';  # 修改密码 or 解决1045异常.

flush privileges;

select host,user from mysql.user; # mysql8 查看所有用户


# 修改授权主机ip

use mysql;

update user set host='127.0.01' where user = 'root' and host='%'';

update user set host='%' where host='localhost';


# 新建用户,用户授权:

grant all on *.* to 'ihunter'@'%' identified by 'wdqdmm@m'  with grant option;

-只读帐号

grant SELECT  on *.* to 'ihunter'@'%' identified by 'wdqdmm@m'  with grant option;

drop user root@'%';  

grant all on wwwecdoo.* to 'wwwecdoo'@'10.42.%' identified by 'wdqdmm@Mysql'  with grant option;

grant usage on  wwwecdoo.* to 'wwwecdoo'@'%' identified by 'beta_aqribnzv'  with grant option;


# 5.6修改密码:

use mysql;

update user set password=password('wdqdmm@r') where user = 'root';

flush privileges;


# 5.7修改密码

alter user 'root'@'localhost' identified by 'p';

update mysql.user set authentication_string=password('p') where user='root' and Host = 'localhost';

flush privileges;


导入:

mysql>use cndob;  #database_name 替换成需要还原的数据库

mysql>source /data/file/mysql/20190327/cndob.sql; # 选择备份数据对应路径即可完成


#docker导出

docker exec mariadb sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql


#docker导入

docker exec -i mariadb sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql


docker exec mariadb sh -c 'exec mysqldump --all-databases -uroot -pwdqdmm@r' > /data/file/b-sql-$(date +%Y%m%d).tar.bz2;

docker exec -i mariadb sh -c 'exec mysql -uroot -pwdqdmm@r' < /data/file/b-sql-$(date +%Y%m%d).sql;


# root登陆异常, 取消root的本地登录限制

mysql -A -uihunter -pwdqdmm@m  -hmariadb -P3306;

use mysql;

update user set host = '%' where user = 'root';

FLUSH PRIVILEGES;


# 账户权限查询

-查询当前登录用户权限

show grants;

-查询指定用户权限

show grants for ihunter@"%";


# 账户权限设置

CREATE USER 'ihunter'@'%' IDENTIFIED BY 'ZZSVJnmfQgYvWYEc';

-管理MySQL 中所有数据库的权限。

grant all  on `abc`.* from 'ihunter'@'%';

-查询、插入、更新、删除 数据库中所有表数据的权利。

grant select,  insert,  update, delete on *.* to 'ihunter'@'%'

-grant 创建、修改、删除 MySQL 数据表结构权限。

grant create, alter, drop on  *.* to 'ihunter'@'%'

-操作 MySQL 外键权限。

grant references on .....

-操作 MySQL 临时表权限。

grant create temporary tables on testdb.* to ....

-操作 MySQL 索引权限。

grant index on testdb.* to  ....

-操作 MySQL 视图、查看视图源代码 权限

grant create view on testdb.* to .....

grant show view on testdb.* to .....

-操作 MySQL 存储过程、函数 权限

grant create routine on testdb.* to ....

grant alter routine on testdb.* to .....

grant execute on testdb.* to .....

-作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to ....

grant execute on function testdb.fn_add to ....


# 增加部分权限

GRANT SELECT ON `abc`.* TO 'ihunter'@'%';  

GRANT SELECT, INSERT, UPDATE, delete , ALTER ON `abc`.* TO 'ihunter'@'%';  


GRANT UPDATE,DELETE,ALTER ON `abc`.oauth_access_token TO 'ihunter'@'%';  

GRANT UPDATE,DELETE,ALTER ON `abc`.qbt_biz_order_finance TO 'ihunter'@'%'; 


-取消

revoke all on `abc`.* from 'ihunter'@'%';


# MySQL修改密码

-5.7

update mysql.user set authentication_string = password('gAJfY5umYpoFC6QD') where user='liusuyu';

-5.6

UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;


FLUSH PRIVILEGES;


-密码策略

SHOW VARIABLES LIKE 'validate_password%';   # MEDIUM: 中等,  LOW: 低等

-设置密码策略为低

set global validate_password_policy=LOW;


# 查看进程

---查看正在执行的sql语句

show processlist;

---停止正在执行的sql语句

kill id(正在执行的sqlID)


# 查看当前数据包大小。

show VARIABLES like '%max_allowed_packet%';



temp:

mysqldump -uroot -pwdqdmm@m wwwcndo > /data/file/mysql/20190327/wwwcndo.sql;

mysqldump -uroot -pwdqdmm@m wwwxmfv > /data/file/mysql/20190327/wwwxmfv.sql;

mysqldump -uroot -pwdqdmm@m wwwycboo > /data/file/mysql/20190327/wwwycboo.sql;

mysqldump -uroot -pwdqdmm@m wwwkufind > /data/file/mysql/20190327/wwwkufind.sql;

mysqldump -uroot -pwdqdmm@m wwweduboo > /data/file/mysql/20190327/wwweduboo.sql;

mysqldump -uroot -pwdqdmm@m wwwcnfood > /data/file/mysql/20190327/wwwcnfood.sql;

mysqldump -uroot -pwdqdmm@m wwwecdoo > /data/file/mysql/20190327/wwwecdoo.sql;

mysqldump -uroot -pwdqdmm@m domsngg > /data/file/mysql/20190327/domsngg.sql;

mysqldump -uroot -pwdqdmm@m domsntongji > /data/file/mysql/20190327/domsntongji.sql;



mysql版本升级兼容处理: mysql error:#1547 mysql.proc is wrong

/usr/local/mariadb/bin/mysql_upgrade -uroot -p*


---查看数据库的编码集

show variables like '%character%';

---查看目前字符集编码

SHOW VARIABLES LIKE '%char%';

show variables like 'character_set%';   # 查看当前环境的character_set

show variables like 'collation%';          # 查看当前的collation


SET GLOBAL character_set_client     = utf8mb4;

SET GLOBAL character_set_connection = utf8mb4;

SET GLOBAL character_set_database   = utf8mb4;

SET GLOBAL character_set_results    = utf8mb4;

SET GLOBAL character_set_server     = utf8mb4;

#如果你的数据库中已经存在表了,建议进行修复一下

mysqlcheck -A -uihunter -pwdqdmm@m -h39.101.166.123 --auto-repair --optimize --all-databases



create database db_name;  -- 创建数据库

show databases;           -- 显示所有的数据库

drop database db_name;    -- 删除数据库

use db_name;              -- 选择数据库

create table tb_name (字段名 varchar(20), 字段名 char(1));   -- 创建数据表模板

show tables;              -- 显示数据表

desc tb_name;            -- 显示表结构

drop table tb_name;      -- 删除表


# information_schema: 查看一些db的基础信息

use information_schema;  -- mysql的基础信息库 

select * from ENGINES ;  -- 后台存储引擎信息数据的表 

show engines;   -- mysql窗口界面的命令 

select * from GLOBAL_STATUS ;   --  当前运行的全局的status参数信息数据 

show status;  -- 命令行查看 

select * from GLOBAL_VARIABLES ;   -- 当前的全局的参数存储的数据 

show variables;  -- 命令行查看


---mysql_stmt_prepare failed

--max_prepared_stmt_count参数限制了同一时间在mysqld上所有session中prepared 语句的上限。 

--它的取值范围为“0 - 1048576”,默认为16382。 

--mysql对于超出max_prepared_stmt_count的prepare语句就会报1461的错误。

show global variables like '%stmt%'; 

set global max_prepared_stmt_count=124000; 

docker exec -it mariadb /bin/bash

docker exec -it  mariadb  mysql -uroot -pwdqdmm@r  -e"set global max_prepared_stmt_count=124000;"


#1 表示不区分大小写 2表示区分大小写

lower_case_table_names=2

lower_case_table_names: 此参数不可以动态修改,必须重启数据库 

lower_case_table_names = 1  表名存储在磁盘是小写的,但是比较的时候是不区分大小写 

lower_case_table_names=0  表名存储为给定的大小和比较是区分大小写的  

lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的 

---

show global variables like '%lower_case_table_names%';

set global lower_case_table_names=0;


-压缩备份

mysqldump --single-transaction -hlocalhost  --all-databases --triggers --routines --events -P3306 -uroot -pxxxx |gzip > test.tar.gz

-压缩还原

gunzip < test.tar.gz |mysql -hlocalhost -uroot -pxxxxx


---mysql版本升级兼容处理: mysql error:#1547 mysql.proc is wrong

/usr/local/mariadb/bin/mysql_upgrade -uroot -p*

---修复数据库

所有数据库: /usr/local/mariadb/bin/mysqlcheck --auto-repair -A -o -uroot -p*

单一数据库:/usr/local/mariadb/bin/mysqlcheck --auto-repair --databases kufind -o -uroot -p*

---SQL语句的执行时间过长

/usr/local/mariadb/bin/mysqldumpshow  

mysqldumpslow -s c -t 20  /var/log/mariadb/slow.log

mysqldumpslow -s r -t 20  /var/log/mariadb/slow.log

-上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

mysqldumpslow -t 10 -s t -g “left join”  /var/log/mariadb/slow.log

这个是按照时间返回前10条里面含有左连接的sql语句。


mysql相关: https://abc.htmltoo.com/search-mysql.htm

mariadb相关: https://abc.htmltoo.com/search-mariadb.htm

mycat相关: https://abc.htmltoo.com/search-mycat.htm

0.CentOS下mysql常用命令.  1.CentOS服务器下MySQL数据库101个优化技巧.  2.mysql数据库如何增量备份数据

3.mysql主从复制实现数据库同步.  4.Linux下MySQL主从同步配置.  5.Mysql之Mycat读写分离

6.mysql-mycat-中间件安装与使用.   7.mysql 忘记密码,1045错误修改方法


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回