通过什么命令能够改变mysql的variables的变量里的值?
设置全局变量方法1(不推荐): 修改参数文件, 然后重启mysqld
# vi /etc/my.cnf
[mysqld]
wait_timeout=10
# service mysqld restart
不过这个方法太生硬了, 线上服务重启无论如何都应该尽可能避免。设置全局变量方法2(推荐): 在命令行里通过SET来设置, 然后再修改参数文件
如果要修改全局变量, 必须要显示指定"GLOBAL"或者"@@global.", 同时必须要有SUPER权限.
mysql> set global wait_timeout=10;
or
mysql> set @@global.wait_timeout=10
会话变量和全局变量转换方法:
在命令行里通过SET来设置 将会话变量值设置为对应的全局变量值。
mysql> set @@session.wait_timeout=@@global.wait_timeout;
将会话变量值设置为MySQL编译时的默认值(wait_timeout=28800):
mysql> set wait_timeout=DEFAULT;
这里要注意的是, 并不是所有的系统变量都能被设置为DEFAULT, 如果设置这些变量为DEFAULT则会返回错误。
1、假如用户输入的姓名和年龄值分别保存在变量name,age中:
char sql_insert[200];
sprintf(sql_insert, "INSERT INTO table values('%s','%d');", name, age);
mysql_query(&mysql_conn, sql_insert);
2、上述语句在执行完sprintf语句后,sql_insert中保存的是INSERT查询语句字符串,sql_insert作为mysql_query()语句的参数即可实现正确的插入。
MySQL系统变量(system variables)实际上是一些系统参数,用于初始化或设定数据库对系统资源的占用,文件存放位置等等。
MySQL 里设置或修改系统变量的几种方法
1、-- 设置或修改系统日志有效期
SET GLOBAL expire_logs_days=8;
SHOW VARIABLES LIKE '%expire_logs_days%';
2、-- 设置或修改系统最大连接数
SET GLOBAL max_connections = 2648;
SHOW VARIABLES LIKE '%max_connections%';
3、-- 修改MYSQL自动编号步长
SHOW VARIABLES LIKE '%auto_increment%';
SET GLOBAL auto_increment_offset = 1;
SET GLOBAL auto_increment_increment = 1;
比如设置MySQL实例参数wait_timeout为10秒.