4.2.7影响选项文件的命令行选项
++++++++++++++++++++
4.2.8使用选项去设置变量
++++++++++++++++++++
许多mysql程序都有内置的变量,可以在运行时使用SET语句设置;大多数的这些变量也可以在服务器启动的时候设置;
max_allowed_packet (the maximum size of communication buffer)
1、可以使用字节,也可以使用K,M,G
shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M
2、[mysqld]
max_allowed_packet=16777216
[mysqld]
max_allowed_packet=16M
3、可以使用破折号替换下划线
[mysqld]
key_buffer_size=512M
[mysqld]
key-buffer-size=512M
4、可以使用模糊前缀
shell> mysql --max_a=10000
5、Suffixes for specifying a value multiplier can be used when setting a variable at server startup, but not to set the value with SET at runtime.
6、使用SET的时候可以使用表达式,但是在服务器启动的时候设置的话是不能使用表达式的
服务器启动的时候设置:
shell> mysql --max_allowed_packet=16M 可以
shell> mysql --max_allowed_packet=16*1024*1024 不行
运行时设置:
mysql> SET GLOBAL max_allowed_packet=16M; 不行
mysql> SET GLOBAL max_allowed_packet=16*1024*1024; 可以
4.2.9Option Defaults, Options Expecting Values, and the = Sign
++++++++++++++++++++
按照惯例,长格式的选项赋值的时候要使用=
shell> mysql --host=tonfisk --user=jon
对于一些需要值的选项(没有默认值),=不是必须的,下面这种写法是合法的
shell> mysql --host tonfisk --user jon
由于上面的缘故,当一个需要值的选项没有被赋值的时候,程序会出问题;例如:
shell> mysql --host 85.224.35.45 --user
shell> mysql --host --user jon
有默认值的选项在赋值的时候通常需要使用=,否则会出错;例如:
--log-err选项有默认值:hostname.err
shell> mysqld_safe & 没错,使用默认值
shell> mysqld_safe --log-err 没错,一样的
shell> mysqld_safe --log-error my-errors & 这就出错了
shell> mysqld_safe --log-error=my-errors & 这样就对了
在配置文件中,=是必须的;例如:
1、文件my.cnf里边有
[mysql]
host
user
当使用mysql 命令的时候
shell> mysql
配置选项会被解释为--host --user 或者--host=--user 这样就错了
2、假如my.cnf文件里边有:
[mysql]
user jon
当使用mysql 命令的时候
shell> mysql
会出现这个错误:mysql: unknown option '--user jon'
3、假如my.cnf文件里边有:
[mysql]
user=jon
不会出错
在配置文件中,如果你指定了一个需要值的选项却没有给它赋值,服务器会报错;
假如my.cnf文件有如下内容:
[mysqld]
log_err
relay_log
relay_log_index
下面的命令将会失败:
shell> mysqld_safe &
因为relay_log选项需要一个值
4.2.10设置环境变量
++++++++++++++++++++
可以在命令行中设置环境变量以影响当前调用;也可以在启动文件中设置以影响以后所有调用;
在Windows下:SET USER=your_username
在Unix下,视shell类型而定,典型的(sh, ksh, bash, zsh):
MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT
对于csh,tcsh:
setencv MYSQL_TCP_PORT 3306
在命令行中设置的环境变量,当你退出的时候就失效了;如果想长久有效,写到你系统提供的启动文件里边去;
在Windows中,你可以在系统控制面板设置;
在Unix中,典型的启动文件是:.bashrc .bash_profile (bash)或者 .tcshrc (tcsh)
假如你的mysql安装在/usr/local/mysql/bin里边,并且你想方便的调用:
对于.bashrc来说,可以这样设置
PATH=${PATH}:/usr/local/mysql/bin
对于.tcshrc来说,可以这样设置
setenv PATH ${PATH}:/usr/local/mysql/bin
---------------------
mysql程序概览之(三)
最新推荐文章于 2024-07-13 21:08:51 发布