任务一 更改root密码

1. 更改环境变量

修改/etc/profile文件,文件尾添加mysql的绝对路径,修改环境变量如图所示:

  1. [root@lnmp ~]# vim /etc/profile
  2. export PATH=$PATH:/usr/local/mysql/bin/
  3. # 刷新参数
  4. [root@lnmp mysql]# source /etc/profile

image.png

2. 创建MySQL密码

使用命令mysqladmin -uroot password ‘123456’为root用户创建初始密码,如图所示:

  1. [root@lnmp mysql]# mysqladmin -uroot password '123456'
  2. Warning: Using a password on the command line interface can be insecure.
  3. mysqladmin:
  4. You cannot use 'password' command as mysqld runs
  5. with grant tables disabled (was started with --skip-grant-tables).
  6. Use: "mysqladmin flush-privileges password '*'" instead
  7. # 可以忽略warning内容,指的是明码输入屏幕不安全。
  8. 使用命令mysql -uroot -p123456,完成初始密码登录,如图所示:
  9. [root@lnmp mysql]# mysql -uroot -p123456

image.png

3. 密码重置

修改配置文件2,在mysqld配置段,增加字段skip-grant,如图所示:

  1. [root@lnmp mysql]# vim /etc/my.cnf

image.png
修改完成后,重启MySQL服务:/etc/init.d/mysqld restart
使用命令登入MySQL(修改的配置段,是完成忽略授权的操作,可以直接登入,无需输入用户名密码),切换到MySQL库,对user表进行更新操作,如图所示:
image.png
修改完成后,确认新密码登录有效。把/etc/my.cnf改回原有状态,并重启MySQL服务。
image.png

任务2 连接MySQL

1. mysql -uroot -p123456

image.png

2. mysql -uroot -p123456 -h127.0.0.1 -P3306

image.png

3. mysql -uroot -p123456 -S/tmp/mysql.sock

image.png

4. mysql -uroot -p123456 -e “show databases;”

  1. # 注意引号必须是英文状态才可以。
  2. [root@lnmp mysql]# mysql -uroot -p123456 -e "show databases;"
  3. Warning: Using a password on the command line interface can be insecure.
  4. +--------------------+
  5. | Database |
  6. +--------------------+
  7. | information_schema |
  8. | mysql |
  9. | performance_schema |
  10. | test |
  11. +--------------------+

image.png

任务3 MySQL常用命令

1. 查询库 show databases;

  1. [root@lnmp mysql]# mysql -uroot -p123456
  2. mysql> show databases;

image.png

2. 切换库 use mysql;

  1. mysql> use mysql;

image.png

3. 查看库里的表 show tables;

  1. mysql> show tables;

image.png

4. 查看表里的字段 desc tb_name;

  1. mysql> desc user;

image.png

5. 查看建表语句 show create table tb_name\G;

  1. mysql> show create table user\G;

image.png

6. 查看当前用户 select user();

  1. mysql> select user();

image.png

7. 查看当前使用的数据库 select database();

  1. mysql> select database();

image.png

8. 创建库 create database db1;

  1. mysql> create database db1;

image.png

9. 创建表 use db1; create table t1(id int(4), name char(40));

  1. mysql> use db1; create table t1(`id` int(4), `name` char(40));

image.png

10. 查看当前数据库版本 select version();

  1. mysql> select version();

image.png

11. 查看数据库状态 show status;

  1. mysql> show status;

image.png

12. 查看各参数 show variables; show variables like ‘max_connect%’;

  1. mysql> show variables; show variables like 'max_connect%';

image.png

13. 修改参数 set global max_connect_errors=1000;

  1. mysql> set global max_connect_errors=1000;

image.png

14. 查看队列 show processlist; show full processlist;

  1. mysql> show processlist; show full processlist;

image.png

任务4 MySQL创建用户以及授权

1. 进行授权

  1. mysql> grant all on *.* to 'user1' identified by 'passwd';
  2. mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'127.0.0.1' identified by 'passwd';
  3. mysql> grant all on db1.* to 'user3'@'%' identified by 'passwd';
  4. # 第一条实现不了的话先输入以下参数
  5. mysql> flush privileges;

image.png
image.png

2. 查看授权表

  1. mysql> show grants for user2@127.0.0.1;
  2. mysql> show grants for user2@192.168.133.1;

image.png

任务5 MySQL常用SQL语句

1. 查看表内行数select count(*) from mysql.user;

  1. mysql> select count(*) from mysql.user;

image.png

2. 查看db表内的内容 select * from mysql.db;

  1. mysql> select * from mysql.db;

image.png

3. 查看db表内含有db字段的内容 select db from mysql.db;

  1. mysql> select db from mysql.db;

image.png

4. 搜索查看多个字段 select db,user from mysql.db;

  1. mysql> select db,user from mysql.db;

image.png
注释:搜索多个字段时,字段中间要用“,”隔开

5. 查询host为127.0的内容 select * from mysql.db where host like ‘192.168.%’;

  1. mysql> select * from mysql.db where host like '192.168.%';

image.png

6. 向db1.t1中插入内容 insert into db1.t1 values (1, ‘abc’);

  1. mysql> insert into db1.t1 values (1, 'abc');
  2. mysql> select * from db1.t1;

image.png

7. 把id=1的字段内容更新成aaa update db1.t1 set name=’aaa’ where id=1;

  1. mysql> update db1.t1 set name='aaa' where id=1;
  2. mysql> select * from db1.t1;

image.png

8. 清空db1.t1表内的内容 truncate table db1.t1;

  1. mysql> truncate table db1.t1;
  2. mysql> select * from db1.t1;

image.png
注释:清空后表的结构依然存在

9. 删除db1.t1表内的内容 drop table db1.t1;

  1. mysql> drop table db1.t1;

image.png
注释:清空后连同表的结构一同删除

10. 清空db1.t1数据库 drop database db1;

  1. mysql> drop database db1;
  2. mysql> show databases;

image.png

任务6 MySQL数据库的备份与恢复

1.备份库

  1. vim /etc/my.cnf
  2. # 添加
  3. skip-grant
  4. # 重启
  5. /etc/init.d/mysqld restart
  6. [root@lnmp mysql]# mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

image.png

2. 恢复库

  1. [root@lnmp mysql]# mysql -uroot -plinux mysql < /tmp/mysql.sql

image.png

3. 备份表

  1. [root@lnmp mysql]# mysqldump -uroot -plinux mysql user > /tmp/user.sql

image.png

4. 恢复表

  1. [root@lnmp mysql]# mysql -uroot -plinux mysql < /tmp/user.sql

image.png

5. 备份所有库

  1. [root@lnmp mysql]# mysqldump -uroot -p123456 -A > /tmp/123.sql

image.png

6. 只备份表结构

  1. [root@lnmp mysql]# mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql

image.png