mysql常用sql整理

——使账户密码过期
ALTER USER ‘myuser’@‘localhost’ PASSWORD EXPIRE;

——创建用户并设置密码
CREATE USER ‘jeffrey’@‘localhost’ IDENTIFIED BY ‘password’;

——给用户设置密码或者修改密码
SET PASSWORD FOR ‘jeffrey’@‘localhost’ = PASSWORD(‘password’);

——给用户授权
GRANT ALL PRIVILEGES ON . TO ‘finley’@‘localhost’ WITH GRANT OPTION;

——查看用户的授权
SHOW GRANTS FOR ‘admin’@‘localhost’;

——备份个别表
mysqldump test t1 t3 t7 > dump.sql;

——备份所有数据库
mysqldump --all-databases > dump.sql

——备份部分数据库
mysqldump --databases db1 db2 db3 > dump.sql

——创建分隔符备份
mysqldump --tab=/tmp --fields-terminated-by=, --fields-enclosed-by=’"’ --lines-terminated-by=0x0d0a db1

——还原备份
mysqlimport --fields-terminated-by=, --fields-enclosed-by=’"’ --lines-terminated-by=0x0d0a db1 t1.txt

mysql> USE db1;
mysql> LOAD DATA INFILE ‘t1.txt’ INTO TABLE t1
FIELDS TERMINATED BY ‘,’ FIELDS ENCLOSED BY ‘"’
LINES TERMINATED BY ‘\r\n’;

——数据库复制
服务器1:
shell> mysqldump --databases db1 > dump.sql
服务器2:
shell> mysql < dump.sql

——为test数据库转存表定义和数据
shell> mysqldump --no-data test > dump-defs.sql
shell> mysqldump --no-create-info test > dump-data.sql

——查看二进制文件列表
show binary logs;

——查看当前二进制日志的名称
show master status;

——查看二进制日志
mysqlbinlog binlog_files > tmpfile

——导出二进制日志可读并进行追加导入
shell> mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql
shell> mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql
shell> mysql -u root -p -e “source /tmp/dump.sql”

—— 根据时间点来查看二进制日志
mysqlbinlog --start-datetime=“2019-01-18 16:40:00” --stop-datetime=“2019-01-18 18:00:00” mysql-bin.000007 > tmpfile

——根据位置点log_pos的值
shell> mysqlbinlog --stop-position=368312 /var/log/mysql/bin.123456
| mysql -u root -p

shell> mysqlbinlog --start-position=368315 /var/log/mysql/bin.123456
| mysql -u root -p

—— 查看帮助信息
? contents 然后? 分类进行帮助信息

——删除数据库下前缀为tmp的表
mysql> select concat(‘drop table otter.’,table_name,’;’) from tables where table_schema=‘otter’ and table_name like ‘tmp%’;

——修改一个库下的表的存储引擎
mysql> select concat(‘alter table otter.’,table_name,‘engine=innodb;’) from tables where table_schema=‘otter’ and engine = ‘MyISAM’;

——查看sql警告
show warnings;

——安全删除二进制日志
1.PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);
2.设置expire_logs_day bilnlog保留时间参数参数
3.关闭二进制日志

—— 回滚至安全点
rollback to safepoint test;

——查看数据库各种信息
show engine innodb status;

——删除分区
alter table tb drop partition p2;

——查看innodb_buffer_pool相关参数
mysqladmin -plaobanjiu -S /tmp/mysql.sock ext|grep -i innodb_buffer_pool

——计算innodb 缓冲池命中率
(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests)*100%

——修改列编码
mysql> alter table emp change name name varchar(20) character set utf8;

——修改表编码格式
mysql> alter table emp default character set utf8;

——获取统计信息
mysqlshow -uroot -p test emp --count 表信息
mysqlshow -uroot -p test --count 数据库信息
mysqlshow -uroot -p test emp -k 统计表索引信息
mysqlshow -uroot -p test emp -i 与show table status from test like ‘emp’一致

——在mysql内部调用系统命令
mysql>system ls -ltr mysql-bin*

——删除二进制日志
reset master
purge master logs to’mysql-bin.000006’ 删除编号6之前的二进制日志
purge master logs before ‘2019-01-18 18:00:00’; 删除时间点之前的

——备份数据并用符号分隔
mysqldump -uroot -p -T /tmp test emp —fields-terminated-by ‘,’
会在tmp下生成一个.sql建表语句和.txt数据文件

——写入一个新的日志文件
flush logs
show master logs;
show master status;

—-修改表编码格式
ALTER TABLE tablename DEFAULT CHARACTER SET utf8;

——修改字段编码格式
ALTER TABLE tablename CHANGE column VARCHAR(36) CHARACTER SET utf8 NOT NULL;

——同时修改两种
alter table tablename convert to character set utf8;

你可能感兴趣的:(mysql)