mysql 常用操作

修改表名

alter table 旧表名 rename 新表名

批量更改表名

SELECT
    CONCAT(
        'ALTER TABLE ',
        table_name,
        ' RENAME TO ',
        REPLACE (
            table_name,
            'st_session_play', -- 要替换的字符串
            'st_session_play_backup' -- 替换为新的字符串
        ),
        ';'
    )
FROM
    information_schema. TABLES
WHERE
    TABLE_SCHEMA = 'walle' -- 数据库名称
AND table_name LIKE 'st_session_play%'; 
数据库导出导入:
数据库导出
[root@dailyyoga ~]# mysqldump -uroot -pltOa5@,E^v%7-U3F2 financial >/alidata_h2o/finacial20190617.sql
数据库导入:
[root@dailyyoga alidata_h2o]# mysql -ufinancial -p -hrm-bp1o78g1nf9kt6rhc.mysql.rds.aliyuncs.com
mysql> set names utf8;
mysql> source /alidata_h2o/finacial20190617.sql;


mysqldump -uroot -p  dailyyog_usercenter accountinfo_idfa > ./accountinfo_idfa.sql

查看数据库大小

#查看表占用大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.TABLES where TABLE_SCHEMA='库名' and table_name = '表名';
#查看数据库大小
select concat(round(sum(data_length/1024/1024),2),’MB’) as data from tables where table_schema=DB_Name’ ;

查看表的最后更新时间

SELECT TABLE_SCHEMA, TABLE_NAME, UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_SCHEMA ='dailyyog_usercenter'

数据查询表占用大小:

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.TABLES where TABLE_SCHEMA='库名' and table_name = '表名';

查看数据库使用大小

select concat(round(sum(data_length/1024/1024),2)) as data from tables where table_schema='sonar';
查询数据编码格式:
show variables like 'character_set_database';
查看数据表的编码格式
show create table <表名>;
修改数据库的编码格式
alter database <数据库名> character set utf8;
修改数据表格编码格式
alter table <表名> character set utf8;
mysqldump 所需要的权限说明:
1、对于table 来说mysqldump 最少要有select 权限。
2、对于view 来说mysqldump 要有show view 权限。
3、对于trrigger 来说mysqldump 要有trriger 权限。
mysql> create user dumper@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> grant select on *.* to dumper@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> grant show view on *.* to dumper@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> grant lock tables on *.* to dumper@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> grant trigger on *.* to dumper@'%';
Query OK, 0 rows affected (0.00 sec)
给用户设置密码:
mysql> update user set password=password('test-db') where user='dumper';

设置慢sql产生的时间:

SHOW VARIABLES like "slow_launch_time%";  #查询当前慢sql设置的时间
set global slow_launch_time=1;  #更改全局慢sql的时间为 1秒  
slow_launch_time的设定跟慢查询日志的查询阀值设定不同,表示了thread create的一个阀值,如果thread create的时间超过了这个值,这变量slow_launch_time的值加1.
mysql> set global long_query_time=1;#更改全局慢sql的时间为 1秒  

show variables like "%slow%";  #查看MySQL慢查询日志路径
show global status like '%slow%';  #查看MySQL慢查询状态
flush privileges;  #刷新系统权限相关表

查看MySQL的正常运行时间(uptime)

 show global status like 'uptime'; 

查询错误日志的存储位置

 show variables like '%error';

查看mysql请求连接进程被主动杀死

show global  status like 'com_kill';

允许的最大包大小

show global variables like 'max_allowed_packet';   (1024*1024*5=5242880)

 

 

 

 

 

  

 

posted @ 2019-07-15 15:57  格桑梅朵儿  阅读(175)  评论(0编辑  收藏  举报