MYSQL客户端程序使用
1.mysql
mysql [options] [database]
-u --user=name #用户名
-h --host=name #登录主机名
-p --password #登录密码
-P --port #端口号
--protocol=name #所用协议(tcp,socket,pipe,memory)
-D --database=name #连接MYSQL后将name设为默认数据库
-C --compress #数据压缩后发送
--ssl #启用基于SSL的会话功能
--ssl-ca=/path #CA证书文件位置
--ssl-capath=/dir #有多个证书时,在dir目录中的证书都有效,这里指定多个证书的目录位置
--ssl-cert=/path #自己的证书位置
--ssl-cipher=name #SSL加密算法列表
--ssl-key=/path #自己的密钥文件位置
--ssl-crlpath=name #吊销证书列表位置
--ssl-verify-server-cert #验证服务器端证书
-H --html #产生HTML格式的输出
-X --xml #产生XML格式的输出
如:
[root@www ~]# mysql --html
mysql> use mysql;
mysql> select user,host,password from user;
<TABLE BORDER=1><TR><TH>user</TH><TH>host</TH><TH>password</TH></TR><TR><TD>root</TD><TD>localhost</TD><TD>*84BB5DF4823DA319BBF86C99624479A198E6EEE9</TD></TR><TR><TD>root</TD><TD>*84BB5DF4823DA319BBF86C99624479A198E6EEE9</TD></TR><TR><TD>root</TD><TD>127.0.0.1</TD><TD>*84BB5DF4823DA319BBF86C99624479A198E6EEE9</TD></TR><TR><TD>root</TD><TD>::1</TD><TD>*84BB5DF4823DA319BBF86C99624479A198E6EEE9</TD></TR></TABLE>4 rows in set (0.00 sec)
将上述输出内容粘贴至.HTML文件中用浏览器打开
2.mysqladmin
mysqladmin [options] command [command-args]
create db_name:不需要在MYSQL的交互式模式下创建数据库;
mysqladmin create test
debug:让服务器将debug信息写入到错误日志中;
mysqladmin debug
drop db_name:删除db_name数据库及其中的所有表;
mysqladmin drop test
ping:检查服务器是否在线,如返回0则表示在线,返回1则表示不在线
mysqladmin -uroot -h 192.168.85.128 -p ping
processlist:显示活动的服务进程列表
mysqladmin processlist
status:显示服务器状态信息
mysqladmin status
status --sleep m --count n:每隔m秒显示一次服务状态信息,共显示n次;
mysqladmin status --sleep 2 --count 2
extended-status:显示服务器的状态变量信息;
mysqladmin extended-status
flush-privileges:让mysqld重读授权表(等同于reload);
mysqladmin flush-privileges
flush-tables:关闭当前以打开的表
mysqladmin flush-tables
flush-thread:重置线程缓存;
mysqladmin flush-thread
flush-status:清除服务状态变量;
mysqladmin flush-status
flush-logs:用于日志滚动
mysqladmin flush-logs
flush-hosts:刷新主机的所有缓存信息
mysqladmin flush-hosts
kill id,id,...:杀死服务线程
mysqladmin kill 50
refresh:相当于同时执行flush-tables和flush-logs
mysqladmin refresh
shutdown:停止MYSQL服务
mysqladmin shutdown
start-slave:启动复制功能,启动从服务器复制线程(SQL thread和IO thread)
mysqladmin start-slave
stop-slave:关闭复制功能;
mysqladmin stop-slave
MYSQL工作模式:
1. 交互式模式:直接在MYSQL命令行中输入并执行;
如:
mysql>select user,host,password from user;
2. 批处理模式:将命令写入脚本文件中,并将该文件导入MYSQL中执行;
如:(source (\.) Execute an SQL script file. Takes a file name as an argument)
[root@www ~]# vim testdb.sql
create database testdb;
create table testdb.table1(id int,name char(10));
mysql> source /root/testdb.sql
Query OK, 1 row affected (0.03 sec)
Query OK, 0 rows affected (0.25 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| test |
| testdb |
+--------------------+
或者使用重定向功能(删除刚刚创建的testdb数据库):
[root@www ~]# mysql < /root/testdb.sql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| test |
| testdb |
+--------------------+
补充:
MYSQL命令:
1. 客户端命令:
没有结束符,可直接执行;
mysql> ?(列出命令)
clear (\c) #终止语句执行(\c前如果有分号那么命令依然会执行)
如:mysql> show tables\c
mysql>
connect (\r) Reconnect to the server. Optional arguments are db and host.重新连接MYSQL并返回连接信息
mysql> connect
Connection id: 12
Current database: testdb
go (\g) Send command to mysql server.不管结束符是什么,直接将命令送给服务端执行;
mysql> show tables\g
+------------------+
| Tables_in_testdb |
+------------------+
| table1 |
+------------------+
ego (\G) Send command to mysql server, display result vertically.和go一样,不过是竖向方式显示语句结果
mysql> show tables\G
*************************** 1. row ***************************
Tables_in_testdb: table1
1 row in set (0.00 sec)
print (\p) Print current command显示正在执行的命令
quit (\q) Quit mysql.退出MYSQL
status (\s) Get status information from the server.显示服务器状态信息
system (\!) Execute a system shell command.不需要退出就可以执行shell命令
mysql> system ls /root
anaconda-ks.cfg Desktop mysql-5.6.11
cmake-3.3.2 install.log mysql-5.6.11.tar.gz
cmake-3.3.2.tar.gz install.log.syslog testdb.sql
warnings (\W) Show warnings after every statement.语句执行结束后显示警告信息
nowarning (\w) Don't show warnings after every statement语句执行结束后不显示警告信息
2. 服务器端命令:
都有结束符,命令以结束符结束;
设置结束符delimiter (\d) Set statement delimiter:
默认sql语句结束符为;号下面将其改为/号
mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| table1 |
+------------------+
mysql> delimiter /
mysql> show tables/
+------------------+
| Tables_in_testdb |
+------------------+
| table1 |
+------------------+
服务器端命令帮助文档:
http://dev.mysql.com/doc/refman/5.6/en/select.html
MYSQL提示符:
mysql > 可以输入命令语句
->等待继续输入
'>等待另一个'号
">等待另一个"号
`>等待另一个`号
/*>等待另一个多行注释符*\