变量
mysql中的变量分为两种
14.1 系统变量
1) 全局变量
在一个会话中修改,其他会话中的全局变量也会跟着修改
show global variables; 查看全局的系统变量
修改变量:
set @@global.time_zone="system"
set global time_zone=" 8:00"
2) 会话级变量
在一个会话中修改,其他会话不受影响
show session variables; 会话级的系统变量
修改变量:
set @@session.time_zone="system"
set sessiontime_zone=" 8:00"
@@的变量就是系统变量
作用:
系统变量实际上用于控制数据库的一些行为和方式的参数。比如我们启动数据库的时候设定多大的内存,使用什么样的隔离级别,日志文件的大小,存放位置等等一系列的东东。当然我们数据库系统启动后,有些系统变量(参数)也可以通过动态修改来及时调整数据库。
set @@session.autocommit=1; 打开或关闭自动事务提交1代表开启自动事务提交,0代表关闭自动事务提交
set @@global.time_zone=' 8:00'; 改变mysql的时区,会影响select now();函数的效果
查看某个变量
show variables like 'autocommit'
show variables like '%auto%'
名称 | 作用 |
---|---|
default_storage_engine | 默认存储引擎 |
max_user_connections | 当前连接数 |
max_connections | 允许最大连接数 |
character-set-server=utf8 | 服务器的编码 |
datadir=/opt/mysql5.7/data | 数据文件存放地址 |
basedir=/opt/mysql5.7 | 数据库基础路径 |
socket=/opt/mysql5.7/data/mysql.sock | 数据库运行实例 |
innodb_table_locks | 表锁 |
transaction_isolation | 事务的隔离级别 |
14.2 用户变量
用户变量都是以@表示
初始化 :
set @变量名=值;
select @c:=count(1) from student;
select @变量名;
案例1:
代码语言:javascript复制set @num=1;
set @num=@num 1;
select @num;
案例2:
代码语言:javascript复制select @c:=count(1) from student;
set @c=@c*2;
select @c;
14.3 服务器变量
Threads_connected :
变量的值是表示当前有多少个客户连接该mysql服务器
show status like 'Threads_connected'
Created_tmp_disk_tables
在硬盘上建立的临时表数目
skip_grant_tables 取消密码验证
修改密码:
update user set authentication_string=password('123.com') where user='root';
刷新权限:
flush privileges;