当前位置 博文首页 > m0_37389157的博客:MySQL常用sql整理

    m0_37389157的博客:MySQL常用sql整理

    作者:[db:作者] 时间:2021-08-06 21:59

    常用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;
    
    cs