|
内容摘要
- MySQL客户端的登录
- MySQL模式,交互模式,脚本模式
- MySQL服务器命令和客户端命令
- 更改MySQL的输出方式
- MySQL配置文件介绍
1.MySQL客户端的登录
参数说明
mysql
--user, -u #指定用户
--host, -h #指定主机
--password, -p #指定密码
--port #指定端口
--protocol #指定协议
--database DATABASE, -D #指定连接的默认操作数据库
连接指定的数据库
[iyunv@localhost mysql]# mysql -D mydb
mysql> SELECT DATABASE()l;
+------+
| l |
+------+
| mydb |
+------+
设置本机访问mysql数据库不需要密码(这个文件千万不要让其他人可以看到,因为密码都是明文的)
在root家目录下建立一个.my.cnf的文件,写上MySQL的登陆用户名,密码和主机,以后再登陆数据库直接输入mysql命令即可
[iyunv@localhost ~]# vim .my.cnf
[client]
user = root
password = redhat
host = localhost
2.MySQL命令模式
交互式模式(输入一个命令执行一个命令)
批处理模式(脚本模式)
操作:批处理模式创建数据库和表
首先创建一个批处理文件,输入创建库和表的命令。
[iyunv@localhost ~]# vim test.sql
CREATE DATABASE testdb;
CREATE TABLE testdb.tb1(id INT, name CHAR(20));
在mysql客户端中使用此脚本创建数据库和表
mysql> \. /root/test.sql
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| test |
| testdb |
+--------------------+
6 rows in set (0.00 sec)
mysql> USE testdb;
Database changed
mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| tb1 |
+------------------+
1 row in set (0.00 sec)
直接在命令行模式下也可以使用脚本
[iyunv@localhost ~]# mysql < test.sql
3.MySQL客户端命令和服务器端
客户端命令参数说明:
\?:查看帮助
\d:设置命令结束符
\c: 提前终止语句执行
\r:重新连接数据库,并且显示连接id和当前的数据库
\p:显示当前正在执行的命令
\g: 无论语句结束符是什么,直接将此语句送至服务器端执行;
\G: 无论语句结束符是什么,直接将此语句送到服务器端执行,而且结果以竖排方式显示;
\! COMMAND: 执行shell命令
\W: 语句执行结束后显示警告信息;
\#: 对新建的对象,支持补全功能;
MySQL客户端执行命令提示
mysql > 可以输入新语句
-> 语句没有输完
'> 单引号后一半,意思是只给了一个单引号前一半没有给后一半
">双引号后一半
`>反撇号后一半
/*>多行注释信息
客户端命令演示:
delimiter或者\d 设置命令结束符
mysql> \d //
mysql> SHOW DATABASES //
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| test |
| testdb |
+--------------------+
6 rows in set (0.00 sec)
\c终止命令执行,但是如果有命令结束符\c是不生效的
mysql> SELECT User,host FROM us\c
mysql> SELECT User,host FROM user;\c
+------+-----------------------+
| User | host |
+------+-----------------------+
| root | 127.0.0.1 |
| root | localhost |
| root | localhost.localdomain |
+------+-----------------------+
3 rows in set (0.00 sec)
\!执行一个shell命令
mysql> \! ls /root
anaconda-ks.cfg CMakeFiles mysql-5.5.28
awstats-7.0.zip Desktop mysql-5.5.28.tar.gz
cmake-2.8.8 httpd-2.2.17.tar.gz test.sql
cmake-2.8.8.tar.gz install.log VMwareTools-9.6.1-1378637.tar.gz
CMakeCache.txt install.log.syslog vmware-tools-distrib
服务器命令:
服务器端命令获取帮助,帮助下面有链接可以获取到官方文档
help 关键字
参数说明
create DATABASE :创建数据库
drop DATABASE :删除数据库
ping :测试数据库在不在线
processlist:查看mysql正在执行的进程|线程列表
status
--sleep N:显示频率 (--sleep 2 两秒钟刷新一次数据库状态)
--count N: 显示多个状态
extended-status: 显示状态变量
variables: 显示服务器变量
flush-privileges: 让mysqld重读授权表, 等同于reload;
flush-status: 重置大多数的服务器状态变量
flush-tables:关闭所有以打开的表
flush-logs: 二进制和中继日志滚动(对于错误日志只是关闭在打开)
flush-threads:重置线程缓存(清除空闲线程)
flush-hosts: 清除主机的内部信息,dns解析缓存,和由于太多连接错误拒绝登录
kill:杀死mysql内部线程
refresh: 相当于同时执行flush-hosts和flush-logs
shutdown: 关闭mysql服务器进程
version: 服务器版本及当前状态信息;
shutdown:直接关闭mysql服务器
start-slave: 启动复制,启动从服务器复制线程;
SQL thread
IO thread
stop-slave: 关闭复制;
服务器命令演示:
命令行模式创建数据库
[iyunv@localhost ~]# mysqladmin create hellodb
[iyunv@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.5.28-log Source distribution
Copyright (c) 2000, 2012, 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> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hellodb |
| mydb |
| mysql |
| performance_schema |
| test |
| testdb |
+--------------------+
7 rows in set (0.00 sec)
测试mysql主机在不在线
测试本机
[iyunv@localhost ~]# mysqladmin ping
mysqld is alive
测试远程mysql服务器
[iyunv@localhost ~]# mysqladmin -uroot -p -h192.168.0.105 ping
Enter password:
查看mysql正在执行的进程|线程列表
[iyunv@localhost ~]# mysqladmin processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+-------+------------------+
| 20 | root | localhost | | Query | 0 | | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
查看mysql的状态
[iyunv@localhost ~]# mysqladmin status
Uptime: 8194 Threads: 1 Questions: 80 Slow queries: 0 Opens: 37 Flush tables: 1 Open tables: 27 Queries per second avg: 0.009
Uptime:启动时间
Threads:允许的线程数
Questions:已经完成的查询数
Slow queries:慢查询的次数
Opens:打开的表数
Flush tables:刷新的flush表数
Open tables:打开的文件数
Queries per second avg:平均下来每秒钟的查询数
4.更改MySQL的输出方式
更改mysql输出方式
--html 或者 -H 显示为html结构
--xml 或者 -X 显示为XML结构
设置html输出,如果把输出结果放在一个html文件中,那么最终显示的还是一个表格形式
[iyunv@localhost ~]# mysql --html
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.5.28-log Source distribution
Copyright (c) 2000, 2012, 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> use mysql;
Database changed
mysql> SELECT User,Host FROM user;
<TABLE BORDER=1><TR><TH>User</TH><TH>Host</TH></TR><TR><TD>root</TD><TD>127.0.0.1</TD></TR><TR><TD>root</TD><TD>localhost</TD></TR><TR><TD>root</TD><TD>localhost.localdomain</TD></TR></TABLE>3 rows in set (0.00 sec)
5.MySQL配置文件介绍
mysql客户端和服务器端都共享一个组件my.cnf
读取配置文件的顺序,最后找到的生效
/etc/my.cnf --> /etc/mysql/my.cnf --> $MYSQL_HOME/my.cnf --> --default-extra-file=/path/to/somefile --> ~/.my.cnf
配置文件生效段
[mysqld]
对服务器生效
[mysqld_safe]
对safe生效
[client]
对所有客户端生效
[mysql]
对mysql客户端生效
查看可以写入配置文件的参数
[iyunv@localhost ~]# mysqld --help --verbose
|
|