MySQL教程学习之面试题09_MySQL命令_MySQL数据库日常维护操作命令
1.MySQL启动与停止
启动MySQL服务
service mysqld start
/init.d/mysqld start
safe_mysql &
停止mysql服务
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -uroot -pitpux123 shutdown
2.检测端口是否运行
lsof -i:3306
netstat -tunlp|grep 3306
ss -tulnp|grep 3306
3.为MySQL设置密码或者修改密码。
方法一
mysqladmin -u root -pitpux123 password 'fgedu123' #比较常用
方法二(sql语句修改)
update mysql.user set password=password(itpux123) where user='root' and host='localhost';
flush privileges;
方法三(sql语句修改)
set password=password('fgedu123');
MySQL密码丢了,请找回?
# pkill mysql #先关闭mysql服务
#使用--skip-grant-tables启动mysql,忽略授权登陆验证
# mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
# mysql #此时再登陆,已经不需要密码了
mysql> update mysql.user set password=password('itpux123') where user='root' and host="localhost"; #设置新的密码
mysql> flush privileges;
# mysql -uroot -pitpux123 #再次用新设置的密码登陆即可
4.登陆MySQL数据库。
单实例登陆
mysql -uroot -pitpux123
多实例登陆
mysql -uroot -pitpux123 -S /data/3306/mysql.sock
5.查看当前数据库的字符集
mysql> show variables like "%charac%";
6.查看当前数据库版本
# mysql -V
mysql> select version();
7.查看当前登录的用户。
mysql> select user();
8.创建GBK字符集的数据库fgedu,并查看已建库完整语句
mysql> create database fgedu default character set gbk;
mysql> show create database fgedu;
9.创建用户fgedu,使之可以管理数据库fgedu
mysql> grant select,update,insert,delete,alter on fgedu.* to fgedu@'localhost' identified by 'itpux123';
10.查看创建的用户fgedu拥有哪些权限
mysql> show grants for fgedu@'localhost';
11.查看当前数据库里有哪些用户
mysql> select user,host from mysql.user;
12.进入fgedu数据库
mysql> use fgedu();
13.创建一个innodb GBK表itpux,字段id int(4)和name varchar(16)
mysql> create table itpux (id int(4),name varchar(16)) engine=InnoDB default charset=gbk;
14.查看建表结构及表结构的SQL语句
mysql> desc itpux;
mysql> show create table itpux\G
15.插入一条数据“1,fgedu”
mysql> insert into itpux (id,name) values (1,'fgedu');
16.再批量插入2行数据 “2,风哥MySQL教程”,“3,fgeduedu”
mysql> insert into itpux (id,name) values (2,'风哥MySQL教程'),(3,'fgeduedu');
17.查询名字为fgedu的记录
mysql> select * from itpux where name='fgedu';
18.把数据id等于1的名字更改为fgedu
mysql> update itpux set name='fgedu' where id=1;
19.在字段name前插入age字段,类型tinyint(2)
mysql> alter table itpux add age tinyint(2) after id;
20.不退出数据库,完成备份fgedu数据库
mysql> system mysqldump -uroot -pitpux123 -B -x -F --events fgedu >/backup/bak.sql
21.删除itpux表中的所有数据,并查看
mysql> delete from itpux;
22.删除表itpux和fgedu数据库并查看
mysql> drop table itpux;
mysql> drop database fgedu;
23.不退出数据库恢复以上删除的数据
mysql> system mysql -uroot -pitpux123 </backup/fgedu_dbbackup.sql
24.把库表的GBK字符集修改为UTF8
mysql> alter database fgedu default character set utf8;
mysql> alter table itpux default character set utf8;
25.把id列设置为主键,在Name字段上创建普通索引。
mysql> alter table itpux add primary key(id);
方法一:
mysql> alter table itpux add index index_name(name);
方法二:
mysql> create index index_name on itpux(name);
26.在字段name后插入手机号字段(number),类型char(11)。
mysql> alter table itpux add number char(11) after name;
27.所有字段上插入2条记录(自行设定数据)
mysql> insert into itpux (id,age,name,number) values ('1','m','风哥MySQL学习','fgedu100001');
mysql> insert into itpux (id,age,name,number) values ('2','n','itpux2','fgedu100002');
28.在手机字段上对前8个字符创建普通索引
方法一:
mysql> alter table itpux add index index_number(number(8));
方法二:
mysql> create index index_number on itpux(number(8));
29.查看创建的索引及索引类型等信息。
mysql> show index from itpux\G
30.删除Name,number列的索引。
mysql> alter table itpux drop index index_name;
mysql> alter table itpux drop index index_number;
31.对Name列的前6个字符以及手机列的前8个字符组建联合索引。
mysql> create index index_name_number on itpux(name(6),number(8));
32.查询手机号以137开头的,名字为fgedu的记录(提前插入)。
mysql> select * from itpux where name='fgedu' and number like "137%";
33.查询上述语句的执行计划(是否使用联合索引等)。
mysql> explain select * from itpux where name="fgedu" and number like "137%"\G
34.把itpux表的引擎改成MyISAM。
mysql> alter table itpux engine=myisam; #myisam不区分大小写
35.收回fgedu用户的select权限。
mysql> revoke select on fgedu.* from fgedu@'localhost';
36.删除fgedu用户。
mysql> drop user fgedu@'localhost';
37.删除fgedu数据库。
mysql> drop database fgedu;
38.使用mysqladmin关闭数据库。
mysqladmin -uroot -pitpux123 shutdown