Linux运维必会的MySQL企业面试题
基础笔试命令
1、开启MySQL服务
[root@localhost ~]# /etc/init.d/mysqld start
[root@localhost ~]# service mysqld start
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl start mysqld
2、检测端口是否运行
[root@localhost ~]# lsof -i :3306[root@localhost ~]# netstat -ntl | grep 3306
3、MySQL设置密码或者修改密码
设置密码
[root@ ~]#: mysqladmin -u root -p password 新密码
修改密码
[mysql]> update user set password=password(‘新密码’) where user=‘root’; (mariadb)
mysql> ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;(mysql8+)
4、查看当前数据库版本
[root@ ~]#: mysql -V
5、创建用户并授权(mysql8+)
mysql> create user ‘用户名’@‘localhost’ identified by ‘123456’;mysql> grant select,update on . to ‘用户名’@‘localhost’;
6、查看当前登录的用户
mysql> select user();
7、查看当前数据库里有哪些用户
mysql> select user from mysql.user;
8、删除zengweiliang用户
mysql> drop user zengweiliang@localhost;
9、查看创建的用户villian拥有哪些权限
mysql> show grants for villian@localhost
10、查看当前数据库的字符集
mysql> show create database DB_NAME; (database改为table,查看表字符集)
11、修改库表的GBK字符集为UTF8
mysql> alter database sziit default character set utf8;mysql> alter table teacher default character set utf8;
12、查看建表结构及表结构的SQL语句
mysql> desc teacher;mysql> show create table
13、创建一innodb GBK表student1,字段id int(4)和name varchar(16)
mysql> create table student (id int(5),name varchar(10))engine=innodb default charset=gbk;
UTF8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比GBK大,对于网站打开速度而言,也是有一定影响的。
GBK编码格式,它的功能少,仅限于中文字符,当然它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。
14、修改表的引擎为MyISAM
mysql> alter table test engine=MyISAM(innodb);
15、查看表引擎
mysql> show table status from 库名 where name=‘表名’ \G;mysql> show create table 表名;
16、使用mysqldump备份恢复数据库
> **进入数据库创建测试库及表**
[root@localhost ~]# mysql -u root -p
mysql> show databases; ## 查看所有库 ##
+--------------------+
| Database |
+--------------------+
| mysql |
+--------------------+
mysql> create database test; ## 创建test库 ##
mysql> use test; ## 进入test库 ##
mysql> create table student ( ## 创建student表 ##
-> id int(10),
-> name varchar(10)
-> );
mysql> insert into student (id,name) values (1,'villian'); ## 写入信息 ##
mysql> show databases; ## 查看所有库 ##
+--------------------+
| Database |
+--------------------+
| mysql |
| test |
+--------------------+
————————————————————————————————————————————————————————————————————————
> **退出mysql,使用mysqldump进行备份**
[root@localhost ~]# mysqldump -u root -p -B test > /root/test.sql ## 备份 ##
[root@localhost ~]# ll /root/test.sql ## 查看是否备份成功 ##
-rw-r--r--. 1 root root 2080 10月 4 10:18 /root/test.sql
————————————————————————————————————————————————————————————————————————
> **进入mysql,对test库进行删除**
mysql> drop database test; ## 删除test库 ##
mysql> show databases; ## 查看所有库 ##
+--------------------+
| Database |
+--------------------+
| mysql | ## test库已不在 ##
+--------------------+
————————————————————————————————————————————————————————————————————————
> **退出mysql,使用mysql进行恢复**
[root@localhost ~]# mysql -u root -p < /root/test.sql ## 还原 ##
或者
mysql命令行恢复:mysql> source /root/test.sql
————————————————————————————————————————————————————————————————————————
> **进入mysql,查看test库是否恢复成功**
mysql> show databases; ## 查看所有库 ##
+--------------------+
| Database |
+--------------------+
| mysql |
| test | ## test库恢复 ##
+--------------------+
————————————————————————————————————————————————————————————————————————