春华秋实之MySQL进阶-06 MySQL管理

春华秋实之MySQL进阶-06 MySQL管理_第1张图片

欠第八章,有机会补(dog)

9 MySQL管理

9.1 系统数据库

  1. 系统自带数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
  1. 各自的功能
  • mysql:存储MySQL服务器正常运行所需要的各种信息(时区、主从、用户、权限)
  • information_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型以及访问权限等
  • performance_schema:为MySQL服务器运行时状态提供了一个底层监控的功能,主要用于收集数据库服务器性能参数
  • sys:包含了一系列方便DBA和开发人员利用performance_schema性能数据库进行性能调优和诊断的视图

9.2 常用工具

  1. mysql客户端工具
  • 语法
mysql [options] [database]

选项:
    -u, --user=name #指定用户名
    -p, --password[=name] #指定密码
    -h, --host=name #指定服务器IP或域名
    -P, --port=port #指定连接端口    大写
    -e, --execute=name #执行SQL语句并退出

-e用于脚本文件中

 用于脚本文件: mysql -uroot –pxxxxxx db01 -e "select * from stu";
  • 案例
[root@hadoop ~]#  mysql -h192.168.60.102 -P3306 -uroot -pxxxxxxxx itcast -e"select * from course";
mysql: [Warning] Using a password on the command line interface can be insecure.
+----+-------------+
| id | name        |
+----+-------------+
|  6 | Hive        |
|  1 | javaEE      |
|  3 | MySQL       |
|  8 | RabbitMQ    |
|  9 | Spark       |
|  2 | SpringBoot  |
|  4 | SpringCloud |
+----+-------------+
  1. mysqladmin执行管理操作
  • 用途:mysqladmin是执行管理操作的客户端程序。可以用来检查服务器的配置和当前状态、创建并删除数据库等。也是可以用在脚本中
  • 语法
[root@hadoop ~]# mysqladmin [OPTIONS] command command....

通过帮助文档查看 [OPTIONS] command :
[root@hadoop ~]# mysqladmin --help

​ commad就是很多关于服务器的操作了

春华秋实之MySQL进阶-06 MySQL管理_第2张图片

  • 案例
-- 看下版本
[root@hadoop ~]# mysqladmin -uroot -pxxxxxxxx version 

mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin  Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.26
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			4 hours 37 min 28 sec

Threads: 5  Questions: 132  Slow queries: 0  Opens: 197  Flush tables: 3  Open tables: 116  Queries per second avg: 0.007
-- 查看系统变量
[root@hadoop ~]# mysqladmin -uroot -pxxxxxxxx variables
-- 创建一个数据库
[root@hadoop ~]# mysqladmin -uroot -pxxxxxxx create db02
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
  1. mysqlbinlog查看二进制日志
  • 用途:由于服务器生成的二进制日志以二进制格式保存,如果想要检查这些文本的文本格式,就用到
  • 语法
语法 :
mysqlbinlog [options] log-files1 log-files2 ...
选项 :
-d, --database=name 指定数据库名称,只列出指定的数据库相关操作。
-o, --offset=# 忽略掉日志中的前n行命令。
-r,--result-file=name 将输出的文本格式日志输出到指定文件。
-s, --short-form 显示简单格式, 省略掉一些信息。
--start-datatime=date1 --stop-datetime=date2 指定日期间隔内的所有日志。
--start-position=pos1 --stop-position=pos2 指定位置间隔内的所有日志。
  • 案例
-- 查看二进制文件
[root@hadoop ~]# cd /var/lib/mysql
[root@hadoop mysql]# ll
total 322952
-rw-r----- 1 mysql mysql       56 Dec 25  2021 auto.cnf
-rw-r----- 1 mysql mysql      179 Aug 15 04:43 binlog.000001
-rw-r----- 1 mysql mysql      179 Aug 15 05:55 binlog.000002
-rw-r----- 1 mysql mysql      179 Aug 15 06:01 binlog.000003
-rw-r----- 1 mysql mysql      179 Aug 15 06:14 binlog.000004
-rw-r----- 1 mysql mysql      179 Aug 15 06:24 binlog.000005

-- 乱码来着的
[root@hadoop mysql]# cat binlog.000001                                                                                                                                    aþbinjR฽8.0.26jR

**4
(9^*RТ^࿗³q[root@hadoop mysql]# 
-- 用binlog查看,这样看就不会乱码
[root@hadoop mysql]# mysqlbinlog -s binlog.000001
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
  1. mysqlshow客户端查找工具
  • 用途:mysqlshow客户端查找工具,用来很快的查找存在哪些数据库,数据库中的表,表中的列或者索引

  • 语法

语法 :
mysqlshow [options] [db_name [table_name [col_name]]]
选项 :
--count 显示数据库及表的统计信息(数据库,表均可以不指定)
-i 显示指定数据库或者指定表的状态信息
  • 案例
[root@hadoop mysql]# mysqlshow -uroot -pxxxxxxxx itcast --count
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: itcast
+----------------+----------+------------+
|     Tables     | Columns  | Total Rows |
+----------------+----------+------------+
| course         |        2 |          7 |
| course_v_1     |        2 |          7 |
| course_v_2     |        2 |          0 |
| course_v_3     |        2 |          0 |
| course_v_4     |        2 |          7 |
| course_v_5     |        2 |          0 |
| course_v_6     |        2 |          0 |
| course_v_count |        1 |          1 |
| tb_user        |        9 |         25 |
| tb_user_pro    |        3 |         18 |
| tb_user_view   |        7 |         25 |
| user_logs      |        5 |         10 |
+----------------+----------+------------+
  1. mysqldump数据备份
  • 用途:客户端工具用来备份数据库或者不同数据库中之间进行数据迁移。备份内容包含创建表,以及插入表的SQL语句
  • 语法
语法 :
mysqldump [options] db_name [tables]
mysqldump [options] --database/-B db1 [db2 db3...]
mysqldump [options] --all-databases/-A
连接选项 :
-u, --user=name 指定用户名
-p, --password[=name] 指定密码
-h, --host=name 指定服务器ip或域名
-P, --port=# 指定连接端口
输出选项:
--add-drop-database 在每个数据库创建语句前加上 drop database 语句
--add-drop-table 在每个表创建语句前加上 drop table 语句 , 默认开启 ; 不
开启 (--skip-add-drop-table)
-n, --no-create-db 不包含数据库的创建语句
-t, --no-create-info 不包含数据表的创建语句
-d --no-data 不包含数据
-T, --tab=name 自动生成两个文件:一个.sql文件,创建表结构的语句;一
个.txt文件,数据文件
  • 案例
[root@hadoop ~]# mysqldump -uroot -pxxxxxxxx itcast > itcast.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@hadoop ~]# ll
total 56328
-rw-------. 1 root   root      1259 Aug 21  2021 anaconda-ks.cfg
drwxr-xr-x  3 root   root        35 Dec 26  2021 app
-rw-r--r--  1 hadoop root         0 Jul 25 04:06 apple.txt
-rw-r--r--  1 root   root     24260 Aug 30 02:43 itcast.sql


-- -t 不包含建表语句
[root@hadoop ~]# mysqldump -uroot -pxxxxxxxx -t itcast > itcast.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@hadoop ~]# ll
total 56316
-rw-------. 1 root   root      1259 Aug 21  2021 anaconda-ks.cfg
drwxr-xr-x  3 root   root        35 Dec 26  2021 app
-rw-r--r--  1 hadoop root         0 Jul 25 04:06 apple.txt
-rw-r--r--  1 root   root     11378 Aug 30 02:43 itcast.sql
-- mysql信任的存放目录在这个目录中
mysql> show variables like '%secure_file_priv%';
+------------------+-----------------------+
| Variable_name    | Value                 |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.00 sec)

-- -T会形成两个文件,一个表结构语句,一个数据语句
[root@hadoop ~]# mysqldump -uroot -pxxxxxxxx -T /var/lib/mysql-files/ itcast course
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@hadoop ~]# cd /var/lib/mysql-files/
[root@hadoop mysql-files]# ll
total 8
-rw-r--r-- 1 root  root  1435 Aug 30 02:43 course.sql
-rw-r----- 1 mysql mysql   70 Aug 30 02:43 course.txt
  1. mysqlimport数据库导入数据工具
  • 用途:mysqlimport是客户端数据导入工具,用来导入mysqldump加-T参数后导出的文本文件
  • 语法
语法 :
mysqlimport [options] db_name textfile1 [textfile2...]
示例 :
mysqlimport -uroot -p2143 test /tmp/city.txt
  • 案例
先删掉表中数据

[root@hadoop mysql-files]# mysqlimport -uroot -pxxxxxxxx itcast /var/lib/mysql-files/course.txt
mysqlimport: [Warning] Using a password on the command line interface can be insecure.
itcast.course: Records: 7  Deleted: 0  Skipped: 0  Warnings: 0

完成之后数据又显示了
  1. source数据库导入工具
  • 语法
source /root/xxxx/sql
  • 案例
mysql> use itcast;
mysql> source /root/itcast.sql

Query OK, 6 rows affected (0.00 sec)

Query OK, 30 rows affected (0.00 sec)

Query OK, 20 rows affected (0.00 sec)

Query OK, 9 rows affected (0.00 sec)

你可能感兴趣的:(mysql,数据库)