在MySQL数据库中,全局变量可以通过SET GLOBAL语句来设置。例如,设置服务器语句超时的限制,可以通过设置系统变量max_execution_time来实现:

    1. SET GLOBAL MAX_EXECUTION_TIME=2000;

    使用SET GLOBAL语句设置的变量值只会临时生效数据库重启后,服务器又会从MySQL配置文件中读取变量的默认值。
    MySQL 8.0版本新增了SET PERSIST命令。例如,设置服务器的最大连接数为1000:

    1. SET PERSIST global max_connections = 1000;

    MySQL会将该命令的配置保存到数据目录下的mysqld-auto.cnf文件中,下次启动时会读取该文件,用其中的配置来覆盖默认的配置文件。

    举例:

    查看全局变量max_connections的值,结果如下:

    1. mysql> show variables like '%max_connections%';
    2. +------------------------+-------+
    3. | Variable_name | Value |
    4. +------------------------+-------+
    5. | max_connections | 151 |
    6. | mysqlx_max_connections | 100 |
    7. +------------------------+-------+
    8. 2 rows in set, 1 warning (0.00 sec)

    设置全局变量max_connections的值:

    1. mysql> set persist max_connections=1000;
    2. Query OK, 0 rows affected (0.00 sec)

    重启MySQL服务器,再次查询max_connections的值:

    1. mysql> show variables like '%max_connections%';
    2. +------------------------+-------+
    3. | Variable_name | Value |
    4. +------------------------+-------+
    5. | max_connections | 1000 |
    6. | mysqlx_max_connections | 100 |
    7. +------------------------+-------+
    8. 2 rows in set, 1 warning (0.00 sec)