连入MySQL服务器
mysql client <--mysql protocol--> mysqld
mysqld接收连接请求:
本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1(localhost)地址或lo接口进行通信;
Linux OR Unix: Unix Sock, /tmp/mysql.sock, /var/lib/mysql/mysql.sock
Windows: memory, pipe
远程通信:客户端与服务器位于不同的主机,或在同一主机便使用非回环地址通信
TCP socket
客户端工具:mysql, mysqladmin, mysqldump, mysqlcheck
[client]
通行的选项:
-u, --user=
-h, --host=
-p, --password=
--protocol={tcp|socket|memory|pipe}
--port=
--socket= 例如:/tmp/mysql.sock
mysql监听的端口: 3306/tcp
非客户端类的管理工具:myisamchk, myisampack
mysql工作模式:
交互式模式
mysql>
脚本模式
mysql < /path/to/mysql_script.sql
mysql交互式模式:
客户端命令
mysql> help
mysql> \?
\c
\g
\G
\q
\!
\s
\. /path/to/mysql_script.sql
服务器端命令:需要命令结束符,默认为分号(;)
mysql> help contents
mysql> help Keryword
mysql命令行选项:
--compress
--database=, -D
-H, --html:输出结果为html格式的文档
-X, --xml: 输出格式为xml
# mysql --sate-updates -p 登录: 拒绝使用无where子句的update或delete命令;
# mysql -H -p 登录,之后的显示就是html文档
mysql命令提示符:
mysql> 等待输入命令
->
'>
">
`>
/*>
mysql的快捷键:
Ctrl + w: 删除光标之前的单词
Ctrl + u: 删除光标之前至命令行首的所有内容
Ctrl + y: 粘贴使用Ctrl+w或Ctrl+u删除的内容
Ctrl + a: 移动光标至行首
Ctrl + e: 移动光标至行尾
################################################################################
mysqldmin工具:
mysqladmin [options] command [arg] [command [arg]] ...
command:
create DB_NAME
[root@localhost ~]# mysqladmin -uroot -p create mydb1
[root@localhost ~]# mysql -uroot -p -e 'show databases;'
drop DB_NAME
debug: 打开调试日志并记录于error log中;
status:显示简要状态信息
[root@localhost ~]# mysqladmin -uroot -p status
[root@localhost ~]# mysqladmin -uroot -p status --sleep 2 间隔2秒
[root@localhost ~]# mysqladmin -uroot -p status --sleep 2 --count 6 显示次数
flush-hosts: 清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表
flush-logs: 日志滚动,二进制日志和中继日志
refresh: 相当于同时使用flush-logs和flush-hosts
flush-privileges: 通知重读授权表
[root@localhost ~]# mysqladmin -uroot -p flush-privileges
[root@localhost ~]# mysqladmin -uroot -p reload
reload: 功能同flush-privileges
flush-status: 重置状态变量的值
extended-status: 输出mysqld的各状态变量及其值,相当于执行“mysql> SHOW GLOBAL STATUS”
[root@localhost ~]# mysqladmin -uroot -p flush-status
[root@localhost ~]# mysqladmin -uroot -p extended-status
variables: 输出mysqld的各服务器变量
flush-tables: 关闭当前打开的表文件句柄
flush-threads:清空线程缓存
password: 修改当前用户的密码;
ping:
processlist:显示mysql线程列表
[root@localhost ~]# mysqladmin -uroot -p processlist
kill: 杀死指定的线程ID,可以一次杀死多个线程,以逗号分隔,但不能有多余空格
shutdown: 关闭mysqld进程;
[root@localhost ~]# mysqladmin -uroot -p shutdown
start-slave
stop-slave: 启动/关闭从服务器线程
[root@localhost ~]# mysqladmin -uroot -p start-slave
[root@localhost ~]# mysqladmin -uroot -p stop-slave
##########################################################################
GUI客户端工具:
Navicat for mysql 强
Toad for mysql 强
mysql front 强
sqlyog
mysql Query Browser
Mysql Administrator
mysql Workerbench
phpMyAdmin 开源