MySQL命令行工具使用很简单,先打开命令提示符,输入mysql -u用户名 -p密码 -h主机地址,就能连接上数据库。连接成功后,用show databases;看所有数据库,use 数据库名;切换进去,show tables;看表,select * from 表名;查数据。核心技巧就是多用where条件过滤数据,避免全表扫描;用limit限制返回行数,提高速度;备份用mysqldump -u用户名 -p密码 数据库名 > backup.sql;恢复用mysql -u用户名 -p密码 数据库名 < backup.sql。这些基本操作掌握了,日常工作就够用了。
连接和基本操作
在Windows下,打开cmd,切换到MySQL的bin目录,或者把bin路径加到环境变量里。然后敲mysql -h localhost -u root -p,回车后输入密码,就进去了。看到mysql>提示符说明成功。常用命令:status;看当前状态,exit;退出。show databases;列出数据库,create database 库名;建库,drop database 库名;删库。切换用use 库名;。
表操作技巧
进库后,show tables;看表列表。建表用create table 表名(字段1 类型,字段2 类型);比如create table users(id int auto_increment primary key,name varchar(50));。看表结构desc 表名;。改表alter table 表名 add column 新字段 类型;。删表drop table 表名;。技巧是建表时就把主键和索引想好,避免后期麻烦。
数据增删改查
查:select * from users where id=1;带条件的查,select count(*) from users;统计总数。增:insert into users(name) values('张三');。改:update users set name='李四' where id=1;。删:delete from users where id=1;。核心技巧:改删一定要加where,不然全表没了。批量插入用insert into users values(1,'a'),(2,'b');快很多。
备份和恢复
备份整个库:mysqldump -u root -p 数据库名 > /path/to/backup.sql。备份单表:mysqldump -u root -p 数据库名 表名 > table.sql。恢复:mysql -u root -p 目标库 < backup.sql。技巧是定期备份,存到安全地方,还可以用--single-transaction参数让备份一致性更好。
高级查询技巧
多表联查:select * from users u join orders o on u.id=o.user_id;。分组:select name,count(*) from users group by name having count(*)>1;。排序:select * from users order by id desc limit 10;。技巧是用explain select ...;看执行计划,优化慢查询,添索引select * from users force index(idx_name);强制用索引。
FAQ
Q: 连接MySQL命令行总是说access denied怎么办?
A: 检查用户名密码对不对,-u root -p后输入密码;如果是远程,用-h ip地址;权限不够进mysql库,用grant all on *.* to 'user'@'%' identified by 'pass';授权。
Q: 怎么查看当前数据库的字符集?
A: show variables like 'character_set%';或者进信息_schema库,select * from character_sets;。
Q: 忘记root密码怎么重置?
A: 停MySQL服务,用mysqld --skip-grant-tables启动,连接后update mysql.user set password=password('新密码') where user='root';再重启正常模式。
Q: 导入大SQL文件卡住怎么办?
A: 用source /path/to/file.sql;或者mysql -u root -p 库名 < bigfile.sql,关掉自动提交set autocommit=0;再commit;加速。