MySQL 数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql,mysqladmin,mysqldump 等等,都是大家所熟悉的。虽然有些人对这些工具的功能都已经比较了解了,但是真正能将这些工具程序物尽其用的人可能并不是太多,或者知道的不全,也可能并不完全了解其中的某种特性。所以在这里我也简单地做一个介绍。
mysql
mysql 的功能和Oracle 的sqlplus 一样,为用户提供一个命令行接口来操作管理MySQL服务器。
mysqladmin
Usage: mysqladmin [OPTIONS] command command ...
mysqadmin,顾名思义,提供的功能都是与MySQL 管理相关的各种功能。如MySQL Server状态检查,各种统计信息的flush,创建/删除数据库,关闭MySQL Server 等等。mysqladmin所能做的事情,虽然大部分都可以通过mysql 连接登录上MySQL Server 之后来完成,但是大部分通过mysqladmin 来完成操作会更简单更方便。这里我将介绍一下自己经常使用到的几个常用功能:
1.ping 命令可以很容易检测MySQL Server 是否还能正常提供服务
sky@sky:~# mysqladmin -u sky -ppwd -h localhost ping
mysqld is alive
2.status 命令可以获取当前MySQL Server 的几个基本的状态值
sky@sky:~# mysqladmin -u sky -ppwd -h localhost status
Uptime: 20960 Threads: 1 Questions: 75 Slow queries: 0 Opens: 15 Flush
tables: 1 Open tables: 9 Queries per second avg: 0.3
3.每隔两秒查看一次服务器的状态,总共重复5次。
[root@test-huanqiu ~]# mysqladmin -uroot -p -i 2 -c 5 status
4.processlist 获取当前数据库的连接线程信息
sky@sky:~# mysqladmin -u sky -ppwd -h localhost processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 48 | sky | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
[root@test-huanqiu ~]# mysqladmin -uroot -p-i 1 processlist //每秒刷新一次
5.修改root 密码
[root@test-huanqiu ~]# mysqladmin -u root -p原密码 password 'newpassword'
6.查询mysql服务器的版本
[root@test-huanqiu ~]# mysqladmin -uroot -p version
7.查看服务器状态的当前值:
[root@test-huanqiu ~]# mysqladmin -uroot -p extended-status
8.查询服务器系统变量值:
[root@test-huanqiu ~]# mysqladmin -uroot -p variables
9.刷新命令mysqladmin flush commands
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-hosts
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-logs
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-privileges
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-status
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-tables
[root@test-huanqiu ~]# mysqladmin -u root -ptmppassword flush-threads
10.执行kill 进程
[root@test-huanqiu ~]# mysqladmin -uroot -p kill idnum
11.停止和启动MySQL replication on a slave server
[root@test-huanqiu ~]# mysqladmin -u root -p stop-slave
[root@test-huanqiu ~]# mysqladmin -u root -p start-slave
mysqldump
mysqlimport
使用命令行工具mysqlimport导入数据
mysqlhotcopy
mysqlhotcopy不像mysqldump那样是逻辑备份,它是物理备份,但是它支持MyIsam存储引擎。