・ 登录MySQL
mysql -h 10.123.45.678 -P 3800 -u qconnadmin -p
大写P为端口,小写p为密码
・ 查询出的数据如何导出到文件中?
SELECT * FROM tablename INTO OUTFILE '/tmp/ze.txt';
或者在服务器执行bash命令
mysql -e "SELECT ..." > file_name
比如:
mysql -h 10.123.456.789 -P 3000 -u username -p schemename -e "select* from schemename.b_qq_tablename where id >100">'/data/tmp/data.txt'
・ 数据库导入导出
导出SQL
mysqldump -h 10.133.2.209 -P 3306 -u qconnadmin -p metadata_form>ak.sql
如果需要exclude个别表,可以用--ignore-table属性,比如
mysqldump -h 10.133.2.209 -P 3306 -u qconnadmin -p metadata_form--ignore-table=metadata_form.b_group_verify_log --ignore-table=metadata_form.b_group_refuse>ak.sql
导入SQL
mysql -h 10.198.30.120 -P 3877 -u qconnadmin -p metadata_form <ak.sql
・ 如何查询表占用空间大小?
如果想知道MySQL数据库中每个表占用的空间、表记录的行数的话,
先
use information_schema
在该库中有一个TABLES 表,这个表主要字段分别是:
・ TABLE_SCHEMA: 数据库名
・ TABLE_NAME:表名
・ ENGINE:所使用的存储引擎
・ TABLES_ROWS:记录数
・ DATA_LENGTH:数据大小
・ INDEX_LENGTH:索引大小
・ 查询所有数据的大小
select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB') as size frominformation_schema.tables;
・ 查看指定数据库实例的大小,比如说数据库 metadata_form
select concat(round(sum(DATA_LENGTH/1024/1024), 2), 'MB') as size frominformation_schema.tableswhere table_schema='metadata_form';
・ 查看指定数据库各个表的大小
select table_name, (data_length + index_length) as size, table_rows fromtables where table_schema = 'metadata_form' order by size desc;
select table_name, (data_length + index_length)/1024/1024 as size,table_rows from tables where table_schema = 'metadata_form' order by size desc;
・ 查看指定数据库的表的大小,比如说数据库 forexpert 中的 member 表
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as size frominformation_schema.tableswhere table_schema='metadata_form' andtable_name='b_qqconnect_mobile_face_version';
・ 查询数据库当前设置的最大连接数
show variables like '%max_connections%';
・ 查看mysql数据库连接数
show status like 'Threads%';
+-------------------+-------+
|Variable_name | Value |
+-------------------+-------+
|Threads_cached | 58 |
|Threads_connected | 57 | ###这个数值指的是打开的连接数
|Threads_created | 3676 |
|Threads_running | 4 | ###这个数值指的是激活的连接数,这个数值一般远低于connected数值
+-------------------+-------+
Threads_connected跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数
・ 该选择MySQL哪种存储引擎,Innodb具有什么特性?
以前开发用的是Oracle,都是一种引擎,但是MySQL有多种,简直逼死选择困难症
(以下是KM上同事总结的,讲的简单易懂,这里无耻的引用下)
・ 存储引擎简介
插件式存储引擎是Mysql的重要特性,Mysql支持多种存储引擎以满足用户的多种应用场景
存储引擎解决的问题:如何组织mysql数据在介质中高效地读取,需考虑存储机制、索引设计、并发读写的锁机制等
Mysql5.0支持的存储引擎有MyISAM、InnoDB、Memory、Merge等。
・ MyISAM和InnoDB的区别
・ InnoDB
Mysql5.5之后及CDB的默认引擎。
1. 支持行锁:并发性能好
2. 支持事务:故InnoDB称为事务性存储引擎,支持ACID,提供了具有提交、回滚和崩溃恢复能力的事务安全
3. 支持外键:当前唯一支持外键的引擎
・ MyISAM
Mysql5.5之前默认引擎。
1. 支持表锁:插入+查询速度快,更新+删除速度慢
2. 不支持事务
・ 使用show engines可查看当前Mysql支持的存储引擎详情
mysql 忘记root密码解决方法
步骤一
修改my.cnf ,在mysqld下面添加参数skip-grant-tables。
步骤二
重启mysql服务,直接用mysql登录,不需要加-p参数。
进入mysql之后,使用命令修改root密码。
use mysql; updateusersetpassword=password(yourpassword) whereuser='root';
步骤三
将配置文件中的skip-grant-tables注释掉,然后使用设置的新密码登录。
****如果不想修改配置文件,也可以在启动mysql的时候增加 --skip-grant-tables参数。
操作方法是先停掉mysql, 然后使用
mysqld_safe --skip-grant-tables &
启动mysql。
登录之后使用上述的步骤二修改密码,然后再重启mysql。