4.MySQL程序概述
2015-07-01 11:31
483 查看
4.1. MySQL程序概述
MySQL AB提供了几种类型的程序:MYSQL服务器和服务器启动脚本:(见于5)mysqld是MySQL服务器mysqld_safe、mysql.server和mysqld_multi是服务器启动脚本mysql_install_db初始化数据目录和初始数据库访 访问服务器的客户程序:(见于8)mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。mysqladmin是用于管理功能的客户程序。mysqlcheck执行表维护操作。mysqldump和mysqlhotcopy负责数据库备份。mysqlimport导入数据文件。mysqlshow显示信息数据库和表的相关信息。独立于服务器操作的工具程序:myisamchk执行表维护操作。myisampack产生压缩、只读的表。mysqlbinlog是处理二进制日志文件的实用工具。perror显示错误代码的含义。4.2. 调用MySQL程序
shell> mysql test
shell> mysqladmin extended-status variables
shell> mysqlshow --help
shell> mysqldump --user=root personnel
4.3. 指定程序选项
4.3.1. 在命令行上使用选项
在命令行中指定的程序选项遵从下述规则:·在命令名后面紧跟选项。·选项参量以一个和两个破折号开始,取决于它具有短名还是长名。许多选项有两种形式。例如,-?和--help是指导MySQL程序显示帮助消息的选项的短名和长名。·选项名对大小写敏感。-v和-V均有效,但具有不同的含义。(它们是--verbose和--version选项的短名)。·部分选项在选项名后面紧随选项值。例如,-h localhost或--host=localhost表示客户程序的MySQL服务器主机。选项值可以告诉程序MySQL服务器运行的主机名。·对于带选项值的长选项,通过一个‘=’将选项名和值隔离开来。对于带选项值的短选项,选项值可以紧随选项字母后面,或者二者之间可以用一个空格隔开。(-hlocalhost和-hlocalhost是等效的)。该规则的例外情况是指定MySQL密码的选项。该选项的形式可以为--password=pass_val或--password。在后一种情况(未给出 密码值),程序将提示输入密码。也可以给出密码选项,短形式为-ppass_val或-p。然而,对于短形式,如果给出了密码值,必须紧跟在选项后面,中间不能插入空格。这样要求的原因是如果选项后面有空格,程序没有办法来告知后面的参量是 密码值还是其它某种参量。要想禁用列名,可以使用下面的形式来指定选项:--disable-column-names
--skip-column-names
--column-names=0可以用下述方法“启用”选项:
--column-names
--enable-column-names
--column-names=1如果选项有前缀--loose,如果程序未识别出选项不会提示错误退出,但是会发出一条警告:
shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'对mysql偶尔有用的另一个选项是-e或--execute选项,可用来将SQL语句传递给服务器。该语句必须用引号引起来(单引号或双引号)。当使用该选项时,语句被执行,然后mysql立即退出命令外壳。
shell> mysql -u root -p -e "SELECT User, Host FROM User" mysql
Enter password: ******
+------+-----------+
| User | Host |
+------+-----------+
| | gigan |
| root | gigan |
| | localhost |
| jon | localhost |
| root | localhost |
+------+-----------+
shell>
相同的查询使用mysql -u root -p -e "SELECT User,Host FROM mysql.User"可以按这种方式传递多个SQL语句,用分号隔开:
4.3.2. 使用选项文件
下面程序支持选项文件:myisamchk、myisampack、mysql、mysql.server、mysqladmin、mysqlbinlog、mysqlcc、mysqlcheck、mysqld_safe、mysqldump、mysqld、mysqlhotcopy、mysqlimport和mysqlshow。在Windows中,MySQL程序从以下文件读取启动选项:文件名 | 目的 |
WINDIR\my.ini | 全局选项 |
C:\my.cnf | 全局选项 |
INSTALLDIR\my.ini | 全局选项 |
defaults-extra-file | 用--defaults-extra-file=path指定的文件,如果有 |
文件名 | 目的 |
/etc/my.cnf | 全局选项 |
$MYSQL_HOME/my.cnf | 服务器相关选项 |
defaults-extra-file | 用--defaults-extra-file=path指定的文件,如果有 |
~/.my.cnf | 用户相关选项 |
!include /home/me/myopt.cnf要搜索所有以.cnf结尾的文件的目录/home/mydir并作为选项文件读取,应使用:
!includedir /home/mydir使用my.cnf中的某些内容,如下所示:
[mysqld]
!include /home/mydir/myopt.cnf在这种情况下,只为该服务器处理文件myopt.cnf,并且!include指令将被客户应用程序忽略。注释:目前,在Unix操作系统中,所发现的使用!includedir指令包括的文件的文件名必须以.cnf为扩展名。在Windows中,该指令也为有.ini扩展名(包括.cnf)的文件做检查。如果你想要创建只由一个具体mysqld服务器发布系列读取的选项组,选项组可以用[mysqld-5.0]、[mysqld-5.1]等名称。下面的组表示--new选项只能用于5.1.x 版本的MySQL服务器:
[mysqld-5.1]
new下面是一个典型的全局选项文件:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
[mysqldump]
quick下面是一个典型的用户选项文件:
[client]
# The following password will be sent to all standard MySQL clients
password="my_password"
[mysql]
no-auto-rehash
connect_timeout=2
[mysqlhotcopy]
interactive-timeout所有支持选项文件的MySQL程序可以处理下面的命令行选项:· --no-defaults不读取任何选项文件。· --print-defaults打印从选项文件中获得的程序名和所有选项。· --defaults-file=path_name只使用给出的选项文件。path_name是文件的全路径名。· --defaults-extra-file=path_name在全局选项文件后但在用户选项文件前读该选项文件。在shell脚本中,可以使用my_print_defaults程序来分析选项文件。
shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
4.3.3. 用环境变量指定选项
在Windows或NetWare中,可以设置USER变量来指定MySQL账户名。要想实现,使用语法:SET USER=your_name在Unix中的语法取决于你的外壳。假定你想要使用MYSQL_TCP_PORT变量指定TCP/IP端口号。典型的语法为(例如sh、bash、zsh等等):
MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT第1个命令设置变量,export命令将变量导出到外壳环境,以便其值可供MySQL和其它进程访问。csh和tcsh有类似的问题。运行这些外壳时,使用setenv使外壳变量适用环境:
setenv MYSQL_TCP_PORT 3306
4.3.4. 使用选项设置程序变量
shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M在选项文件中,变量设定值没有引导破折号:
[mysql]
max_allowed_packet=16777216或:
[mysql]
max_allowed_packet=16M如果你喜欢,变量名的下划线可以为破折号。
相关文章推荐
- MySQL基础笔记(二) 完整性约束
- MySQL基础笔记(二) 完整性约束
- MySQL-Proxy实现MySQL读写分离
- mysql怎么让一个存储过程定时执行
- MYSQL学习2数据库-表-字段
- MYSQL笔记1安装
- jsp页面值存入mySql数据库乱码问题 总结 很实用!!!
- MySQL错误代码大全
- [MySQL] - errno:150
- mysql中Access denied for user 'root'@'localhost' (using password:YES)
- mysql取出两者不一致的数据
- mysql sql语句总结
- 简介操作MySQL日志的一些方法
- MySQL常用函数
- MySQL安全输入密码的一些操作介绍
- MySQL数据库集群实现负载均衡的安装配置详解
- 用VCS实现mysql的双机热备
- Mysql 外键设置
- MySQL权限更改示例及SQL语句练习
- Windows mysql 下忘记root密码的解决办法