Linux7.5版本安装MySQL5.7

MySQL5.7安装

1. 环境准备

  • CentOS 7.5

  • MySQL 5.7.30

  • JDK-8u202

2. CentOS 7.5 环境

IP地址主机名
master192.168.8.30mysql30
slave1192.168.8.31mysql31
slave2192.168.8.32mysql32

设置主机名

 # 设置主机名
 hostnamectl set-hostname mysql30
 
 # 查看主机名
 hostname

设置IP地址(虚拟机网络设置为NAT)

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
 ​
 TYPE=Ethernet
 PROXY_METHOD=none
 BROWSER_ONLY=no
 BOOTPROTO=static
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_FAILURE_FATAL=no
 IPV6_ADDR_GEN_MODE=stable-privacy
 NAME=ens33
 DEVICE=ens33
 ONBOOT=yes
 IPADDR=192.168.8.30
 GATEWAY=192.168.8.2
 NETMASK=255.255.255.0
 DNS1=8.8.8.8

重启网络服务

 systemctl restart network
 ​
 # 测试网络
 ping www.baidu.com
关机防火墙(实验需求临时关闭,生产环境还是要打开)
 systemctl stop firewalld        # 停止防火墙服务
 systemctl disable firewalld     # 开机不启动防火墙服务

设置时间同步

 yum -y install npt ntpdate
 ntpdate cn.pool.ntp.org
 hwclock --systoch

3. 安装JDK

检查系统是否存在 jdk

 [root@mysql30 ~]# rpm -qa|grep java
 [root@mysql30 ~]# 
 [root@mysql30 ~]# java -version
 -bash: java: command not found
 [root@mysql30 ~]#

开始安装 JDK

 # 1.解压JDK
 [root@mysql30 ~]# tar -xzvf jdk-8u202-linux-x64.tar.gz
 ​
 # 2.进入/usr/local,创建java目录
 [root@mysql30 ~]# cd /usr/local/
 [root@mysql30 local]# mkdir java
 [root@mysql30 local]# ls
 bin  etc  games  include  java  lib  lib64  libexec  sbin  share  src
 ​
 # 3.回到根目录
 [root@mysql30 local]# cd ~
 ​
 # 4.把解压后的jdk移动到/usr/local/java/目录
 [root@mysql30 ~]# mv jdk1.8.0_202/ /usr/local/java/
 [root@mysql30 ~]# 
 [root@mysql30 ~]# cd /usr/local/java/
 [root@mysql30 java]# ll
 total 0
 drwxr-xr-x 2 10 143 6 Apr  5 18:01 jdk1.8.0_202
 [root@mysql30 java]# cd jdk1.8.0_202/
 [root@mysql30 jdk1.8.0_202]# ll
 total 25988
 drwxr-xr-x 2 10 143     4096 Dec 16  2018 bin
 -r--r--r-- 1 10 143     3244 Dec 16  2018 COPYRIGHT
 drwxr-xr-x 3 10 143      132 Dec 16  2018 include
 -rw-r--r-- 1 10 143  5211154 Dec 12  2018 javafx-src.zip
 drwxr-xr-x 5 10 143      185 Dec 16  2018 jre
 drwxr-xr-x 5 10 143      245 Dec 16  2018 lib
 -r--r--r-- 1 10 143       40 Dec 16  2018 LICENSE
 drwxr-xr-x 4 10 143       47 Dec 16  2018 man
 -r--r--r-- 1 10 143      159 Dec 16  2018 README.html
 -rw-r--r-- 1 10 143      424 Dec 16  2018 release
 -rw-r--r-- 1 10 143 21105955 Dec 16  2018 src.zip
 -rw-r--r-- 1 10 143   112724 Dec 12  2018 THIRDPARTYLICENSEREADME-JAVAFX.txt
 -r--r--r-- 1 10 143   153824 Dec 16  2018 THIRDPARTYLICENSEREADME.txt
 [root@mysql30 jdk1.8.0_202]#
 ​
 # 5.查看jdk路径
 [root@mysql30 jdk1.8.0_202]# pwd
 /usr/local/java/jdk1.8.0_202
 [root@mysql30 jdk1.8.0_202]# 

配置环境变量

# 1.进入配置文件
 [root@mysql30 ~]# vim /etc/profile
 ​
 # 2.使用快捷键跳到最后一行(Shift+g),在最后一行添加下面的语句
 export JAVA_HOME=/usr/local/java/jdk1.8.0_202
 export JRE_HOME=${JAVA_HOME}/jre
 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
 export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
 export PATH=$PATH:${JAVA_PATH}
 ​
 # 3.保存退出后,执行profile立刻生效
 [root@mysql30 ~]# source /etc/profile
 ​
 # 4.测试是否安装成功
 [root@mysql30 ~]# java -version
 java version "1.8.0_202"
 Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
 Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
 [root@mysql30 ~]# 

4. 安装MySQL

4.1. 下载MySQL5.7.30版本

版本下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

4.2. 检查环境

检查系统中是否有MySQL

[root@mysql30 ~]# rpm -qa|grep mysql
[root@mysql30 ~]#
检查系统中是否有Mariadb
[root@mysql30 mysql]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@mysql30 mysql]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@mysql30 mysql]# 
[root@mysql30 mysql]# rpm -qa|grep mariadb
[root@mysql30 mysql]# 

4.3. 开始安装MySQL

# 1.解压
[root@mysql30 ~]# tar -xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

# 2.移动到/usr/local/目录
[root@mysql30 ~]# mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/
[root@mysql30 ~]# cd /usr/local/
[root@mysql30 local]# ll
total 0
drwxr-xr-x. 2 root root   6 Apr 11  2018 bin
drwxr-xr-x. 2 root root   6 Apr 11  2018 etc
drwxr-xr-x. 2 root root   6 Apr 11  2018 games
drwxr-xr-x. 2 root root   6 Apr 11  2018 include
drwxr-xr-x  3 root root  26 Apr  5 18:12 java
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root   6 Apr 11  2018 libexec
drwxr-xr-x  9 root root 129 Apr  5 18:49 mysql-5.7.30-linux-glibc2.12-x86_64
drwxr-xr-x. 2 root root   6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root  49 May  3  2021 share
drwxr-xr-x. 2 root root   6 Apr 11  2018 src
[root@mysql30 local]# 

# 3.修改目录名字
[root@mysql30 local]# mv mysql-5.7.30-linux-glibc2.12-x86_64/ mysql
[root@mysql30 local]# 
[root@mysql30 local]# ll
total 0
drwxr-xr-x. 2 root root   6 Apr 11  2018 bin
drwxr-xr-x. 2 root root   6 Apr 11  2018 etc
drwxr-xr-x. 2 root root   6 Apr 11  2018 games
drwxr-xr-x. 2 root root   6 Apr 11  2018 include
drwxr-xr-x  3 root root  26 Apr  5 18:12 java
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib
drwxr-xr-x. 2 root root   6 Apr 11  2018 lib64
drwxr-xr-x. 2 root root   6 Apr 11  2018 libexec
drwxr-xr-x  9 root root 129 Apr  5 18:49 mysql
drwxr-xr-x. 2 root root   6 Apr 11  2018 sbin
drwxr-xr-x. 5 root root  49 May  3  2021 share
drwxr-xr-x. 2 root root   6 Apr 11  2018 src
[root@mysql30 local]# 

4.4. 创建用户组和用户

[root@mysql30 mysql]# groupadd mysql
[root@mysql30 mysql]# useradd -r -g mysql mysql

4.5. 创建数据目录

[root@mysql30 mysql]# mkdir -p data
[root@mysql30 mysql]# mkdir -p logs/{binlog,relay}
[root@mysql30 mysql]# 
[root@mysql30 mysql]# ll
total 288
drwxr-xr-x  2 root root    4096 Apr  5 18:49 bin
drwxr-xr-x  2 root root       6 Apr  5 19:32 data
drwxr-xr-x  2 root root      55 Apr  5 18:49 docs
drwxr-xr-x  3 root root    4096 Apr  5 18:49 include
drwxr-xr-x  5 root root     230 Apr  5 18:49 lib
-rw-r--r--  1 7161 31415 275235 Mar 24  2020 LICENSE
drwxr-xr-x  4 root root      33 Apr  5 19:33 logs
drwxr-xr-x  4 root root      30 Apr  5 18:49 man
-rw-r--r--  1 7161 31415    587 Mar 24  2020 README
drwxr-xr-x 28 root root    4096 Apr  5 18:49 share
drwxr-xr-x  2 root root      90 Apr  5 18:49 support-files
[root@mysql30 mysql]#

# 回到上一层目录 /usr/local/
[root@mysql30 mysql]# cd ..
[root@mysql30 local]# ll
total 0
drwxr-xr-x.  2 root root   6 Apr 11  2018 bin
drwxr-xr-x.  2 root root   6 Apr 11  2018 etc
drwxr-xr-x.  2 root root   6 Apr 11  2018 games
drwxr-xr-x.  2 root root   6 Apr 11  2018 include
drwxr-xr-x   3 root root  26 Apr  5 18:12 java
drwxr-xr-x.  2 root root   6 Apr 11  2018 lib
drwxr-xr-x.  2 root root   6 Apr 11  2018 lib64
drwxr-xr-x.  2 root root   6 Apr 11  2018 libexec
drwxr-xr-x  11 root root 153 Apr  5 19:33 mysql
drwxr-xr-x.  2 root root   6 Apr 11  2018 sbin
drwxr-xr-x.  5 root root  49 May  3  2021 share
drwxr-xr-x.  2 root root   6 Apr 11  2018 src
[root@mysql30 local]# 

# 赋予权限
[root@mysql30 local]# chown mysql:mysql -R mysql/
[root@mysql30 local]# 
[root@mysql30 local]# cd mysql/
[root@mysql30 mysql]# ll
total 288
drwxr-xr-x  2 mysql mysql   4096 Apr  5 18:49 bin
drwxr-xr-x  2 mysql mysql      6 Apr  5 19:32 data
drwxr-xr-x  2 mysql mysql     55 Apr  5 18:49 docs
drwxr-xr-x  3 mysql mysql   4096 Apr  5 18:49 include
drwxr-xr-x  5 mysql mysql    230 Apr  5 18:49 lib
-rw-r--r--  1 mysql mysql 275235 Mar 24  2020 LICENSE
drwxr-xr-x  4 mysql mysql     33 Apr  5 19:33 logs
drwxr-xr-x  4 mysql mysql     30 Apr  5 18:49 man
-rw-r--r--  1 mysql mysql    587 Mar 24  2020 README
drwxr-xr-x 28 mysql mysql   4096 Apr  5 18:49 share
drwxr-xr-x  2 mysql mysql     90 Apr  5 18:49 support-files
[root@mysql30 mysql]# 
[root@mysql30 mysql]# cd bin/
[root@mysql30 bin]# pwd
/usr/local/mysql/bin
[root@mysql30 bin]#

4.6. 配置环境变量

[root@mysql30 mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin:" >> /etc/profile && source /etc/profile
配置my.cnf
[root@mysql30 mysql]# vim /etc/my.cnf
# 对本地的mysql客户端的配置
[client]
default-character-set=utf8mb4

# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set=utf8mb4

# 本地mysql服务的配置
[mysqld]
user=mysql
port=3306
character-set-client-handshake = FALSE     # 使用服务端字符集
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
default-storage-engine=innodb
innodb_buffer_pool_size=200M
max_allowed_packet=16M
explicit_defaults_for_timestamp=1
general_log=0
general_log_file=/usr/local/mysql/logs/general-db01.err
slow_query_log=ON
# 慢日志存储路径,5.6及以上版本
slow_query_log_file=/usr/local/mysql/logs/slow_query-db01.err
# 设置慢查询时间,默认10s
long_query_time=10
# 日志存储方式,默认FILE,TABLE表示写入到mysql.slow_log表
log-output=FILE
log-error=/usr/local/mysql/logs/err-db01.err

4.7. 初始化数据库

# 进入mysql的bin目录
[root@mysql30 mysql]# cd /usr/local/mysql/bin/

# 初始化
[root@mysql30 ~]# /usr/local/mysql/bin/mysqld_safe --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 
2022-04-05T14:40:33.255373Z mysqld_safe Logging to '/usr/local/mysql/logs/err-db01.err'.
2022-04-05T14:40:33.341510Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
2022-04-05T14:40:37.561176Z mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql30.pid ended
[root@mysql30 ~]# 

# 查看root用户密码
[root@mysql30 ~]# cat /usr/local/mysql/logs/err-db01.err
2022-04-05T14:40:35.118335Z 0 [Warning] CA certificate ca.pem is self signed.
2022-04-05T14:40:35.330507Z 1 [Note] A temporary password is generated for root@localhost: vkhcj>_gj69M

# 启动MySQL
[root@mysql30 ~]# mysqld_safe
# mysqld --defaults-file=/etc/my.cnf 等价于 mysqld_safe
[root@mysql30 data]# mysql -uroot -p
Enter password: vkhcj>_gj69M
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30-log

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> shutdown;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

# 修改root用户密码
mysql> alter user user() identified by 'root';
Query OK, 0 rows affected (0.00 sec)

# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

# 可以正常关闭MySQL
mysql> shutdown;

4.8. 注入MySQL服务

# 创建mysqld.service
[root@mysql30 ~]# vim /usr/lib/systemd/system/mysqld.service

# 复制下面的内容,注意mysql目录
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)

After=network.target
After=syslog.target

[Install]
WantedBy=mulit-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/mysql/apps/mysql/bin/mysqld --defaults-file=/mysql/my.cnf
LimitNOFILE=65536
LimitNPROC=65536

4.9. 服务相关信息

# 启动服务
[root@mysql30 ~]# systemctl start mysqld
# 设置开机自启
[root@mysql30 ~]# systemctl enable mysqld
# 关闭服务
[root@mysql30 ~]# systemctl stop mysqld
# 查看mysql服务状态
[root@mysql30 ~]# systemctl status mysqld

4.10. utf8mb4字符集

utf8mb4是什么?

utf8mb4 最明显的好处是解决了苹果挖的坑-推广了emoji 表情。utf8mb4 解决了MySQL数据库存储emoji表情的问题。

utf8mb4 是 utf8 的超集,理论上由 utf8 升级到 utf8mb4 字符编码没有任何兼容问题。

utf8mb4 是 MySQL5.5.3 版本之后支持的字符集,前提条件是 MySQL 版本必须 >= 5.5.3 。

查看字符编码

mysql> show variables like '%char%';

查找配置文件地址

[root@mysql30 ~]# mysqld --verbose --help|grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 

打开/etc/my.cnf配置文件,修改字符编码

vim /etc/my.cnf

修改或添加以下内容

# 对本地的mysql客户端的配置
[client]
default-character-set=utf8mb4

# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set=utf8mb4

# 本地mysql服务的配置
[mysqld]
character-set-client-handshake = FALSE       # 使用服务端字符集
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci

查看mysql全局变量

show variables like '%char%';

重启MySQL服务

systemctl restart mysqld
systemctl status mysqld

验证字符集

[root@mysql30 ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30-log MySQL Community Server (GPL)

# 查看字符集
mysql> show variables like '%char%';

注:character_set_system 一直都会是 utf8,不能被更改!

查看数据库的编码格式

show create database <数据库>;

修改数据库的编码格式

ALTER DATABASE <数据库> CHARACTER SET utf8mb4 COLLATE = utf8mb4_unicode_ci;;

查看表的编码格式

show create table <表名>;

修改表编码格式

ALTER TABLE <表名> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

查看字段的编码格式

show full columns from <表名>;

修改字段编码格式

alter table <表名> change <字段名> <字段名> <类型> character set utf8mb4 COLLATE utf8mb4_unicode_ci;

检查字段的最大长度和索引列

字段长度

由于从utf8 升级到了 utf8mb4,一个字符所占用的空间也由3个字节增长到4个字节,但是我们当初创建表时,设置的字段类型以及最大的长度没有改变。

例如,在 utf8 下设置某一字段的类型为 TINYTEXT, 这中字段类型最大可以容纳255字节,三个字节一个字符的情况下可以容纳 85 个字符,四个字节一个字符的情况下只能容纳 63 个字符,如果原表中的这个字段的值有一个或多个超过了63个字符,那么转换成 utf8mb4 字符编码时将转换失败,必须先将 TINYTEXT 更改为 TEXT 等更高容量的类型之后才能继续转换字符编码。

索引

在 InnoDB 引 擎中,最大的索引长度为767字节,三个字节一个字符的情况下,索引列的字符长度最大可以达到 255,四个字节一个字符的情况下,索引的字符长度最大只能到 191。如果已经存在的表中的索引列的类型为 VARCHAR(255) 那么转换 utf8mb4 时同样会转换失败。需要先将 VARCHAR(255) 更改为 VARCHAR(191) 才能继续转换字符编码。

5. MySQL5.7 目录

bin目录

用于放置一些可执行文件,如mysql、mysqld、mysqlshow等。

data目录

用于放置一些日志文件以及数据库。

db1就是创建的数据库名。

[root@mysql30 db1]# ll
total 112
-rw-r----- 1 mysql mysql    67 Apr  9 17:51 db.opt
-rw-r----- 1 mysql mysql  8556 Apr  9 17:51 t1.frm
-rw-r----- 1 mysql mysql 98304 Apr  9 17:52 t1.ibd

# 存储引擎是InnoDB, 在data目录下会看到2类文件:.frm、.ibd
# *.frm:是表结构的文件。
# *.ibd:是表数据和索引的文件。该表的索引(B+树)的每个非叶子节点存储索引,叶子节点存储索引和索引对应的数据。
# db.opt:MySQL数据库程序的存放数据目录里的db.opt文件是MySQL程序生成的,是用来记录该库的默认字符集编码和字符集排序规则用的。

查看数据库引擎

mysql> show engines;

  • Engine:引擎名称

  • Support列

    • YES表示当前版本支持这个存储引擎;

    • DEFAULT表示该引擎是默认的引擎;

    • NO表示不支持该存储引擎。

InnoDB存储引擎 从MySQL5.5版本之后,MySQL的默认内置存储引擎已经是InnoDB了。

主要特点:

  • 支持事务。默认的事务隔离级别为可重复读(RR),通过MVCC(并发版本控制)来实现的。

  • 使用的锁粒度为行级锁,可以支持更高的并发;

  • 支持外键;

  • 在InnoDB中存在着缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度;

  • 对于InnoDB类型的表,其数据的物理组织形式是聚簇表(聚簇索引)。所有的数据按照主键来组织。数据和索引放在一块,都位于B+数的叶子节点上;

MyISAM存储引擎 在5.5版本之前,MyISAM是MySQL的默认存储引擎,该存储引擎并发性差,不支持事务,所以使用场景比较少,主要特点为:

  • 不支持事务;

  • 不支持外键,如果强行增加外键,不会提示错误,只是外键不其作用;

  • 对数据的查询缓存只会缓存索引,不会像InnoDB一样缓存数据,而且是利用操作系统本身的缓存;

  • 默认的锁粒度为表级锁,所以并发度很差,加锁快,锁冲突较少,所以不太容易发生死锁;

  • 支持全文索引(MySQL5.6之后,InnoDB存储引擎也对全文索引做了支持),但是MySQL的全文索引基本不会使用,对于全文索引,现在有其他成熟的解决方案,比如:ElasticSearch,Solr,Sphinx等。

  • 数据库所在主机如果宕机,MyISAM的数据文件容易损坏,而且难恢复;

include目录

用于放置一些头文件,如:mysql.h、mysql_ername.h等。

lib目录

用于放置一系列库文件。

share目录

用于存放字符集、语言等信息。

6. show 命令

查看数据库列表

show databases;

查看数据库内的可用表的列表

use <数据库名>;
show tables from <数据库名>;

查看表的字段

show columns from <表名> from <数据库名>;
show columns from <数据库名>.<表名>;

查看创建数据库的语句

show create database <数据库名>;
查看创建表的语句
# 查看表的详细创建信息
shwo create table <表名>\G

显示授予用户的安全权限

show grants for <用户名>;

select * from mysql.user;
select host, user, password, select_priv, insert_priv,drop_priv from  mysql.user;
  1. host :表示连接类型

    • % 表示所有远程通过 TCP 方式的连接;

    • IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定 ip 地址进行的 TCP 方式的连接;

    • 机器名 通过制定 i 网络中的机器名进行的 TCP 方式的连接;

    • ::1 IPv6 的本地 ip 地址 等同于 IPv4 的 127.0.0.1;

    • localhost 本地方式通过命令行方式的连接 , 比如 mysql -u xxx -p 123xxx 方式的连接。

  2. user:表示用户名 同一用户通过不同方式链接的权限是不一样的。

  3. password:密码

    • 所有密码串通过 password(明文字符串) 生成的密文字符串。 加密算法为 MYSQLSHA1 , 不可逆 。

    • mysql 5.7 的密码保存到 authentication_string 字段中不再使用 password 字段。

  4. select_priv , insert_priv 等,为该用户所拥有的权限。

显示服务器错误消息

show errors;

显示服务器警告消息

show warnings;

查看字符集命令

shwo variables like '%character_%';
shwo variables like '%collation_%';

查看表的索引状态

show index from <表名>\G

# show index 返回字段解析: 
# -----------------------------------------
# Table:表的名称。
# Non_unique:如果索引不能包括重复词,则为0。如果可以,则为1。
# Key_name:索引的名称。
# Seq_in_index:索引中的列序列号,从1开始。
# Column_name:列名称。
# Collation:列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类).
# Cardinality:索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新.
# Sub_part:如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
# Packed:指示关键字如何被压缩。如果没有被压缩,则为NULL。
# Null:如果列含有NULL,则含有YES。如果没有,则该列含有NO。
# Index_type:用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
# Comment:多种评注。

显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间

show table status;

显示服务器所支持的不同权限

show privileges;

显示安装以后可用的存储引擎和默认引擎。

show engies;

显示innoDB存储引擎的状态

show innodb status;

显示BDB存储引擎的日志

show logs;

显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过 程名称,创建时间等

show procedure status;

显示某一个存储过程的详细信息

show create procedure sp_name;

显示MySQL上的Binlog文件信息

show binary logs;
show master logs;

显示指定函数的创建语句

show create function fun_name;

显示指定用户的创建语句

show create user <用户名>;

显示指定视图的创建语句

show create view view_name;

显示指定存储引擎运行时的快照信息

show engine <引擎名称> {status|mutex};

显示表缓存中打开的非临时表信息

SHOW OPEN TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]

显示当前会话的SQL语句的资源使用情况

SHOW PROFILE [type [, type] ... ] [FOR QUERY n] [LIMIT row_count [OFFSET offset]]

显示当前会话多个SQL语句的执行耗时

show profiles;

显示当前主库上注册的从库信息

show slave hosts;

显示从库的复制信息

show slave status [for channel channel]

查看服务器状态信息

show status;

# 查看MySQL本次启动后的运行时间(单位:秒)
show status like 'uptime';
 
# 查看select语句的执行数
show [global] status like 'com_select';
 
# 查看insert语句的执行数
show [global] status like 'com_insert';
 
# 查看update语句的执行数
show [global] status like 'com_update';
 
# 查看delete语句的执行数
show [global] status like 'com_delete';
 
# 查看试图连接到MySQL(不管是否连接成功)的连接数
show status like 'connections';
 
# 查看线程缓存内的线程的数量。
show status like 'threads_cached';
 
# 查看当前打开的连接的数量。
show status like 'threads_connected';
 
# 查看当前打开的连接的数量。
show status like 'threads_connected';
 
# 查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
show status like 'threads_created';
 
# 查看激活的(非睡眠状态)线程数。
show status like 'threads_running';
 
# 查看立即获得的表的锁的次数。
show status like 'table_locks_immediate';
 
# 查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
show status like 'table_locks_waited';
 
# 查看创建时间超过slow_launch_time秒的线程数。
show status like 'slow_launch_threads';
 
# 查看查询时间超过long_query_time秒的查询的个数。
show status like 'slow_queries';

显示系统变量

mysqld 服务维护两种变量。全局变量影响服务器的全局操作。会话变量影响具体客户端连接相关操作。

通过连接服务器并执行SET GLOBAL var_name 语句可以更改动态全局变量。要想更改全局变量,必须具有 SUPER 权限,重启 mysql 服务后失效 。

通过 SET SESSION var_name 语句来更改动态会话变量.但客户可以只更改自己的会话变量,而不更改其它客户的会话变量,退出终端后更改失效 。

SHOW VARIABLES通常结合like使用

show variables;

# 1. 查看全局字符集
show global variables like 'character%';
SHOW VARIABLES LIKE 'collation_%';

# 2. 查看当前错误日志配置
show global variables like '%log_err%';

# 3. 查看二进制日志是否开启.
show variables like 'log_bin';

# 4. 查看mysql的连接数.
show variables like '%connections%';

# 5. 查看二进制日志的存储格式
show variables like 'binlog_format';

# 6. 全局查看wait_timeout值
show global variables like ‘wait_timeout’; # 这是mysql的默认值,可修改
# 修改全局wait_timeout值
set global wait_timeout=3600;

# 7. 查询 Mysql最大连接数
show variables like '%max_connections%'; 
# 查询 Mysql当前连接数
show full processlist;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值