# 一、mysqladmin工具介绍

  mysqladmin是用于执行管理操作的客户端。您可以使用它来检查服务器的配置和当前状态，创建和删除数据库等等。mysqladmin支持以下命令。某些命令在命令名称后带有一个参数。

```
create db_name
创建一个名为的新数据库 db_name。
```

```
debug
告诉服务器将调试信息写入错误日志。连接的用户必须具有 SUPER特权。此信息的格式和内容可能会更改。
```

```
drop db_name
删除命名数据库db_name 及其所有表。
```

```
extended-status
显示服务器状态变量及其值。
```

flush-hosts
刷新主机缓存中的所有信息。

flush-logs [log_type …]
刷新所有日志。
所述中mysqladmin冲洗日志命令允许给予任选的日志类型，指定哪个日志平齐。继flush-logs命令，你可以提供一个或多个以下的日志类型的空格分隔的列表：binary， engine，error， general，relay， slow。这些对应于可以为FLUSH LOGSSQL语句指定的日志类型。

flush-privileges
重新加载授权表（与相同reload）。

flush-status
清除状态变量。

flush-tables
刷新所有表。

flush-threads
刷新线程缓存。

kill id,id,…
杀死服务器线程。如果给出了多个线程ID值，则列表中不得有空格。
要杀死属于其他用户的线程，连接的用户必须具有SUPER 特权。

old-password new_password
就像password命令一样，但是使用旧的（4.1之前的）密码哈希格式存储密码。此命令已在MySQL 5.7.5中删除。

password new_password
设置新密码。这会将密码更改new_password为与mysqladmin一起用于连接服务器的帐户的密码 。因此，下次使用同一帐户调用 mysqladmin（或任何其他客户端程序）时，必须指定新密码。

ping
检查服务器是否可用。如果服务器正在运行，则mysqladmin的返回状态为0，否则为1。即使出现诸如之类的错误，该值也为0 Access denied，因为这意味着服务器正在运行，但拒绝了连接，这与服务器未运行不同。

processlist
显示活动服务器线程的列表。这就像该SHOW PROCESSLIST语句的输出。如果–verbose给出了 选项，则输出类似于的输出 SHOW FULL PROCESSLIST。

reload
重新加载授权表。

refresh
刷新所有表，然后关闭并打开日志文件。

shutdown
停止服务器。

start-slave
在副本服务器上开始复制。

status
显示简短的服务器状态消息。

stop-slave
在副本服务器上停止复制。

variables
显示服务器系统变量及其值。

version
显示来自服务器的版本信息。

# 二、使用示例

### 1、查看数据库状态

```
[root@test2 ~]# mysqladmin status -uroot -p
Enter password:
Uptime: 21129 Threads: 2 Questions: 9213 Slow queries: 0 Opens: 1145 Flush tables: 1 Open tables: 733 Queries per second avg: 0.436
```

### 2、修改账户密码

修改指定账户密码

```
[root@test2 ~]# mysqladmin -uroot -p password ‘Test!123’
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
```

### 3、关闭数据库

```
[root@test2 ~]# mysqladmin shutdown -uroot -p
Enter password:

[root@test2 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2021-02-09 16:40:49 CST; 7s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 108163 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 108078 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 108166 (code=exited, status=0/SUCCESS)

Feb 09 10:33:29 test2 systemd[1]: Starting MySQL Server…
Feb 09 10:33:35 test2 systemd[1]: Started MySQL Server.
```



### 4、查看活跃线程

```
[root@test2 ~]# mysqladmin processlist -uroot -p
Enter password:
```

±—±-----±----------±—±--------±-----±---------±-----------------+
| Id | User | Host | db | Command | Time | State | Info |
±—±-----±----------±—±--------±-----±---------±-----------------+
| 3 | root | localhost | | Query | 0 | starting | show processlist |
±—±-----±----------±—±--------±-----±---------±-----------------+

### 5、创建数据库

```
[root@test2 ~]# mysqladmin create test4 -uroot -p
Enter password:
[root@test2 ~]# mysql -uroot -p -e “show databases;”
Enter password:
```

±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test1 |
| test2 |
| test3 |
| test4 |
±-------------------+

### 6、删除数据库

```
[root@test2 ~]# mysqladmin drop test4 -uroot -p
Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the ‘test4’ database [y/N] y
Database “test4” dropped
```



### 7、刷新授权表

```
[root@test2 ~]# mysqladmin reload -uroot -p
Enter password:
```



### 8、查询mysql服务器版本

```
[root@test1 ~]# mysqladmin version -uroot -p -h 192.168.0.125
Enter password:
mysqladmin Ver 8.42 Distrib 5.7.26, for Linux on x86_64
Copyright © 2000, 2019, 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.

Server version 5.7.26
Protocol version 10
Connection 192.168.0.125 via TCP/IP
TCP port 3306
Uptime: 8 min 5 sec

Threads: 2 Questions: 21 Slow queries: 0 Opens: 127 Flush tables: 1 Open tables: 120 Queries per second avg: 0.043
```



### 9、检查远端mysql服务器是否运行

```
[root@test1 ~]# mysqladmin ping -uroot -p -h 192.168.0.125
Enter password:
mysqld is alive
```



# 三、使用语法及参数说明

### 1、语法样式

用法：mysqladmin [OPTIONS] command command…

### 2、参数说明

- 选项名称	参数说明	备注	已弃用
- –bind-address	使用指定的网络接口连接到MySQL Server		
- –compress	压缩客户端和服务器之间发送的所有信息		
- –connect-timeout	连接超时之前的秒数		
- –count	要重复执行命令的迭代次数		
- –debug	编写调试日志		
- –debug-check	程序退出时打印调试信息		
- –debug-info	程序退出时打印调试信息，内存和CPU统计信息		
- –default-auth	身份验证插件使用		
- –default-character-set	指定默认字符集		
- –defaults-extra-file	除常规选项文件外，还读取命名的选项文件		
- –defaults-file	只读命名的选项文件		
- –defaults-group-suffix	选项组后缀值		
- –enable-cleartext-plugin	启用明文身份验证插件		
- –force	即使发生SQL错误，也要继续		
- –get-server-public-key	从服务器请求RSA公钥	5.7.23	
- –help	显示帮助信息并退出		
- –host	MySQL服务器所在的主机		
- –login-path	从.mylogin.cnf中读取登录路径选项		
- –no-beep	发生错误时请勿发出哔声		
- –no-defaults	不读取选项文件		
- –password	连接服务器时使用的密码		
- –pipe	使用命名管道连接到服务器（仅Windows）		
- –plugin-dir	安装插件的目录		
- –port	用于连接的TCP / IP端口号		
- –print-defaults	打印默认选项		
- –protocol	使用的传输协议		
- –relative	与–sleep选项一起使用时，显示当前值与先前值之间的差异		
- –secure-auth	不要以旧（4.1之前）格式向服务器发送密码		是
- –server-public-key-path	包含RSA公钥的文件的路径名	5.7.23	
- –shared-memory-base-name	共享内存连接的共享内存名称（仅Windows）		
- –show-warnings	语句执行后显示警告		
- –shutdown-timeout	等待服务器关闭的最大秒数		
- –silent	静音模式		
- –sleep	重复执行命令，在这之间延迟几秒钟		
- –socket	Unix套接字文件或Windows命名管道使用		
- –ssl	启用连接加密		
- –ssl-ca	包含受信任的SSL证书颁发机构列表的文件		
- –ssl-capath	包含受信任的SSL证书颁发机构证书文件的目录		
- –ssl-cert	包含X.509证书的文件		
- –ssl-cipher	连接加密的允许密码		
- –ssl-crl	包含证书吊销列表的文件		
- –ssl-crlpath	包含证书吊销列表文件的目录		
- –ssl-key	包含X.509密钥的文件		
- –ssl-mode	与服务器连接的所需安全状态	5.7.11	
- –ssl-verify-server-cert	根据服务器证书的通用名身份验证主机名		
- –tls-version	允许的TLS协议进行加密连接	5.7.10	
- –user	连接服务器时使用的MySQL用户名		
- –verbose	详细模式		
- –version	显示版本信息并退出		
- –vertical	垂直打印查询输出行（每列值一行）		
- –wait	如果无法建立连接，请等待重试而不是中止





# mysql5.7二进制安装

### 1.清除环境（清除就旧数据库）

yum remove mariadb-libs -y

yum install wget -y

### 2.解压或下载

wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz

### 3.安装配置

#创建用户和用户组
useradd mysql -s /sbin/nologin

#数据存储目录
mkdir -p /data/mysqldata

#创建日志目录
mkdir -p /var/log/mysql

#设置权限
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

#增加环境变量
cat >>/etc/profile<<end
export PATH=/usr/local/mysql/bin:$PATH
end

```
source /etc/profile
```

echo "正在解压"
#解压包

cd /usr/local/

tar -xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

#解压完目录放到软件目录位置
mv mysql-5.7.30-linux-glibc2.12-x86_64   mysql

#设置目录权限
chown mysql:mysql -R /usr/local/mysql

yum install -y libaio

#初始化数据库
mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

#配置文件
cat >>/etc/my.cnf<<end
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#server_id=6
log-error=/var/log/mysql/error.log
slow_query_log = on
long_query_time = 2
slow-query-log-file = /var/log/mysql/slow.log
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=淋[\\d]>
end

![image-20220926202715061](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/202209262027098.png)

### 4.mysql启动脚本

cp /usr/local/mysql/support-files/mysql.server   /etc/init.d/mysqld 
chmod a+x   /etc/init.d/mysqld



启动MySQL服务的命令为：

/etc/init.d/mysqld start

也可以用/etc/init.d/mysqld的简化命令启动MySQL服务：





查看端口
netstat -lnp|grep 330

![image-20220926202645080](https://ye5201314-1312898079.cos.ap-guangzhou.myqcloud.com/202209262026154.png)

#添加至systemd管理
chkconfig --add mysqld

修改密码

mysqladmin -uroot -p password 

### 5.登录方法

Socket方式(仅本地)：不依赖于ip和端口
mysql -uroot -p -S /data/mysql/mysql.sock
TCP/IP方式（远程、本地）：
mysql -uroot -p -h 远程数据ip -P3306

\#systemctl restart mysql
[root@mysql1 mysql]# mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)
[root@mysql1 mysql]# mysql -uroot  -S /data/mysql/mysql.sock



# mysql5.7编译安装



https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz







```
sudo cmake .. \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_SSL=system \
-DCMAKE_INSTALL_PREFIX=/opt/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DDOWNLOAD_BOOST=0 \
-DWITH_BOOST=~/opt/mysql/boost



```

