做完这40道题,再也不用担心MySQL命令了,废话不多说,咱们直接上干货!!!
1. 开启 MySQL 服务
service mysqld start
/init.d/mysqld start
safe_mysql &
2.关闭 MySQL 服务
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -uroot -p123456 shutdown
3. 检测端口是否运行
lsof -i:3306
netstat -tunlp|grep 3306
ss -tulnp|grep 3306
4. 为 MySQL 设置密码或者修改密码。
方法一
mysqladmin -u root -p123456 password 'abc123' #比较常用
方法二(sql 语句修改)
update mysql.user set password=password(123456) where user='root' and host ='localhost';
flush privileges;
方法三(sql 语句修改)
set password=password('abc123');
5. 登陆 MySQL 数据库。
单实例登陆
mysql -uroot -p123456
多实例登陆
mysql -uroot -p123456 -S /data/3306/mysql.sock
6. 查看当前数据库的字符集
show variables like "%charac%";
7. 查看当前数据库版本
# mysql -V
select version();
8. 查看当前登录的用户。
select user();
9. 创建 GBK 字符集的数据库 smallstudent,并查看已建库完整语句
create database smallstudent default character set gbk;
show create database smallstudent;
10. 创建用户 smallstudent,使之可以管理数据库 smallstudent
grant select,update,insert,delete,alter on smallstudent.* to smallstudent@'localhost' i dentified by '123456';
11. 查看创建的用户 smallstudent 拥有哪些权限
show grants for smallstudent@'localhost';
12. 查看当前数据库里有哪些用户
select user,host from mysql.user;
13. 进入 smallstudent 数据库
use smallstudent();
14. 创建一个 innodb GBK 表 test,字段 id int(4)和 name varchar(16)
create table test (id int(4),name varchar(16)) engine=InnoDB default charset=gbk;
15. 查看建表结构及表结构的 SQL 语句
desc test;
show create table test\G
16. 插入一条数据“1,smallstudent”
insert into test (id,name) values (1,'smallstudent');
17. 再批量插入 2 行数据 “2,老男孩”,“3,smallstudentedu”
insert into test (id,name) values (2,'老男孩'),(3,'smallstudentedu');
18. 查询名字为 smallstudent 的记录
select * from test where name='smallstudent';
19. 把数据 id 等于 1 的名字 smallstudent 更改为 bigstudent
update test set name='bigstudent' where id=1;
20.在字段 name 前插入 age 字段,类型 tinyint(2)
alter table test add age tinyint(2) after id;
21. 不退出数据库,完成备份 smallstudent 数据库
system mysqldump -uroot -p123456 -B -x -F --events smallstudent >/opt/bak. sql
22. 删除 test 表中的所有数据,并查看
delete from test;
23. 删除表 test 和 smallstudent 数据库并查看
drop table test;
drop database smallstudent;
24. 不退出数据库恢复以上删除的数据
system mysql -uroot -p123456 </opt/bak.sql
25. 把库表的 GBK 字符集修改为 UTF8
alter database smallstudent default character set utf8;
alter table test default character set utf8;
26. 把 id 列设置为主键,在 Name 字段上创建普通索引。
alter table test add primary key(id);
方法一:
alter table test add index index_name(name);
方法二:
create index index_name on test(name);
27. 在字段 name 后插入手机号字段(shouji),类型 char(11)。
alter table test add shouji char(11) after name;
28. 所有字段上插入 2 条记录(自行设定数据)
insert into test (id,age,name,shouji) values ('4','27','wangning','13833573773');
insert into test (id,age,name,shouji) values ('5','30','litao','13833573773');
29. 在手机字段上对前 8 个字符创建普通索引
方法一:
alter table test add index index_shouji(shouji(8));
方法二:
create index index_shouji on test(shouji(8));
30. 查看创建的索引及索引类型等信息。
show index from test\G
31. 删除 Name,shouji 列的索引。
alter table test drop index index_name;
alter table test drop index index_shouji;
32. 对 Name 列的前 6 个字符以及手机列的前 8 个字符组建联合索引。
create index index_name_shouji on test(name(6),shouji(8));
33. 查询手机号以 135 开头的,名字为 smallstudent 的记录(提前插入)。
select * from test where name='smallstudent' and shouji like "135%";
34. 查询上述语句的执行计划(是否使用联合索引等)。
explain select * from test where name="smallstudent" and shouji like "135%" \G
35. 把 test 表的引擎改成 MyISAM。
alter table test engine=myisam; #myisam 不区分大小写
36. 收回 smallstudent 用户的 select 权限。
revoke select on smallstudent.* from smallstudent@'localhost';
37. 删除 smallstudent 用户。
drop user smallstudent@'localhost';
38. 删除 smallstudent 数据库。
drop database smallstudent;
39. 使用 mysqladmin 关闭数据库。
mysqladmin -uroot -p123456 shutdown
40. MySQL 密码丢了,请找回?
# pkill mysql #先关闭 mysql 服务
#使用--skip-grant-tables 启动 mysql,忽略授权登陆验证
# mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
# mysql #此时再登陆,已经不需要密码了
update mysql.user set password=password('abc123') where user='root' and host="localhost"; #设置新的密码
flush privileges;
# mysql -uroot -pabc123 #再次用新设置的密码登陆即可
如果您觉得文章有帮助,欢迎点赞收藏加关注,一连三击呀,感谢!!☺☻