--- title: MySQL常用命令 date: 2018-03-26 22:30:39 description: "MySQL导入导出,查看线程等" categories: "技术总结" tags: [MySQL, Docker] --- ## MySQL 常用命令 - **查询数据库每张表的大小** ```sql SELECT TABLE_NAME AS '表名', concat( round(DATA_LENGTH / 1024 / 1024, 2), 'MB' ) AS '数据大小', concat( round(INDEX_LENGTH / 1024 / 1024, 2), 'MB' ) AS '索引大小', TABLE_ROWS AS '数据条数', concat( round( (DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2 ), 'MB' ) AS '总大小' FROM TABLES WHERE TABLE_SCHEMA = 'AAAA' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC; ``` --- - **转换日志文件** 参考官网链接 ```bash mysqlbinlog -v --base64-output=DECODE-ROWS log_file > a.txt ./mysqlbinlog -v --base64-output=DECODE-ROWS -d efi --start-datetime="2009-04-12 12:00:00" --stop-datetime="2019-04-12 14:00:00" D:/mysql/mysql-bin.002715 > D:/mysql/20190412.txt ``` --- - **导入导出** ```sql -- 导出 mysqldump -h主机 -P端口 -u用户名 -p密码 数据库名 > 文件名.sql -- 导入 mysql -h主机 -P端口 -u用户名 -p密码 数据库名 < 文件名.sql ``` --- - **查看线程** ```sql -- 可以解决数据库CPU占用过高的问题,根据看到的sql语句考虑加索引 show full processlist; ``` --- - **查看全局配置信息** ```sql show global variables; ``` --- - **最大连接数** ```sql -- 查看最大连接数 show variables like '%max_connections%'; -- 修改最大连接数 set global max_connections=1000; ``` - **查看编码** ```sql show variables like '%char%'; ``` --- - **Docker运行MySQL** - 用户名密码是上面命令中的操作员用户名密码,不需要用root登录,默认操作员只能操作efi这个数据库 - 使用命名卷管理数据,保持宿主机清洁 ```dockerfile $ docker run --name mysql \ -d \ -p 3306:3306 \ -e MYSQL\_ROOT\_PASSWORD=rootpsw \ -e MYSQL\_USER=user \ -e MYSQL\_PASSWORD=userpsw \ -e MYSQL\_DATABASE=efi \ -v mysql:/var/lib/mysql \ mysql:5.7.18 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci ``` ---