Delen via


Serverparameters in Azure Database for MySQL - Flexibele server

Dit artikel bevat overwegingen en richtlijnen voor het configureren van serverparameters in Azure Database for MySQL - Flexible Server.

Notitie

Dit artikel bevat verwijzingen naar de term slave, die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

Wat zijn serverparameters?

De MySQL-engine biedt veel serverparameters (ook wel variabelen genoemd) die u kunt gebruiken om het gedrag van de engine te configureren en af te stemmen. Sommige parameters kunnen dynamisch worden ingesteld tijdens runtime. Andere zijn statisch en vereisen dat de server opnieuw wordt opgestart nadat u ze hebt ingesteld.

In Azure Database for MySQL - Flexible Server kunt u de waarde van verschillende MySQL-serverparameters wijzigen met behulp van de serverparameters configureren in Azure Database for MySQL - Flexible Server met behulp van Azure Portal en de serverparameters configureren in Azure Database for MySQL - Flexible Server met behulp van de Azure CLI om te voldoen aan de behoeften van uw workload.

Configureerbare serverparameters

U kunt de configuratie van een Flexibele Azure Database for MySQL-server beheren met behulp van serverparameters. De serverparameters worden geconfigureerd met de standaard- en aanbevolen waarden wanneer u de server maakt. In het deelvenster Serverparameters in Azure Portal worden zowel de wijzigbare als niet-aanpasbare parameters weergegeven. De niet-aanpasbare serverparameters zijn niet beschikbaar.

De lijst met ondersteunde serverparameters groeit voortdurend. U kunt Azure Portal gebruiken om periodiek de volledige lijst met serverparameters weer te geven en de waarden te configureren.

Als u een parameter voor een statische server wijzigt met behulp van de portal, moet u de server opnieuw opstarten om de wijzigingen van kracht te laten worden. Als u automatiseringsscripts gebruikt (via hulpprogramma's zoals Azure Resource Manager-sjablonen, Terraform of de Azure CLI), moet uw script een inrichting hebben om de service opnieuw te starten zodat de instellingen van kracht worden, zelfs als u de configuratie wijzigt als onderdeel van de aanmaakervaring.

Als u een niet-aanpasbare serverparameter voor uw omgeving wilt wijzigen, plaatst u een idee via feedback van de community of stemt u als de feedback al bestaat (wat ons kan helpen prioriteit te geven).

In de volgende secties worden de limieten van de vaak bijgewerkte serverparameters beschreven. De rekenlaag en de grootte (vCores) van de server bepalen de limieten.

lower_case_table_names

Voor MySQL versie 5.7 is 1 de standaardwaarde lower_case_table_names in Azure Database for MySQL - Flexible Server. Hoewel het mogelijk is om de ondersteunde waarde 2te wijzigen in, is het terugdraaien van 2 terug naar 1 niet toegestaan. Voor hulp bij het wijzigen van de standaardwaarde maakt u een ondersteuningsticket.

Voor MySQL versie 8.0+ kunt u alleen configureren lower_case_table_names wanneer u de server initialiseert. Meer informatie. Het wijzigen van de lower_case_table_names instelling nadat de server is geïnitialiseerd, is niet toegestaan.

Ondersteunde waarden voor MySQL-versie 8.0 bevinden zich 1 en 2 in Azure Database for MySQL - Flexible Server. De standaardwaarde is 1. Maak een ondersteuningsticket voor hulp bij het wijzigen van de standaardwaarde tijdens het maken van de server.

innodb_tmpdir

U gebruikt de parameter innodb_tmpdir in Azure Database for MySQL - Flexible Server om de map te definiëren voor tijdelijke sorteerbestanden die zijn gemaakt tijdens onlinebewerkingen ALTER TABLE die opnieuw worden gebouwd.

De standaardwaarde innodb_tmpdir is /mnt/temp. Deze locatie komt overeen met de tijdelijke opslag (SSD) en is beschikbaar in gibibytes (GiB) met elke rekenkracht van de server. Deze locatie is ideaal voor bewerkingen waarvoor geen grote hoeveelheid ruimte nodig is.

Als u meer ruimte nodig hebt, kunt u instellen innodb_tmpdir op /app/work/tmpdir. Deze instelling maakt gebruik van de beschikbare opslagcapaciteit op uw Azure Database for MySQL Flexible Server. Deze instelling kan handig zijn voor grotere bewerkingen waarvoor meer tijdelijke opslag is vereist.

Houd er rekening mee dat het gebruik van /app/work/tmpdir resultaten resulteert in tragere prestaties in vergelijking met de standaardwaarde voor tijdelijke opslag (SSD). /mnt/temp Maak de keuze op basis van de specifieke vereisten van de bewerkingen.

De opgegeven innodb_tmpdir informatie is van toepassing op de parameters innodb_temp_tablespaces_dir, tmpdir en slave_load_tmpdir wanneer:

  • De standaardwaarde /mnt/temp is gebruikelijk.
  • De alternatieve map /app/work/tmpdir is beschikbaar voor het configureren van verbeterde tijdelijke opslag, met een afweging in prestaties op basis van specifieke operationele vereisten.

log_bin_trust_function_creators

In Azure Database for MySQL - Flexibele server zijn binaire logboeken altijd ingeschakeld (dat wil gezegd, log_bin is ingesteld op ON). De log_bin_trust_function_creators parameter is standaard ingesteld ON op flexibele servers.

De indeling voor binaire logboekregistratie is altijd ROWen verbindingen met de server maken altijd gebruik van binaire logboekregistratie op basis van rijen. Met binaire logboekregistratie op basis van rijen bestaan er geen beveiligingsproblemen en kunnen binaire logboekregistraties niet worden onderbroken, zodat u veilig kunt toestaan log_bin_trust_function_creators om te blijven als ON.

Als log_bin_trust_function_creators deze optie is ingesteld OFF op en u triggers probeert te maken, krijgt u mogelijk fouten die vergelijkbaar zijn met: 'U beschikt niet over de SUPER-bevoegdheid en binaire logboekregistratie is ingeschakeld (mogelijk wilt u de minder veilige log_bin_trust_function_creators variabele gebruiken).'

innodb_buffer_pool_size

Raadpleeg de MySQL-documentatie voor meer informatie over de innodb_buffer_pool_size parameter.

De grootte van het fysieke geheugen in de volgende tabel vertegenwoordigt het beschikbare RAM-geheugen (random access memory), in gigabytes (GB) op uw Flexibele Azure Database for MySQL-server.

Grootte berekenen vCores Grootte van fysiek geheugen (GB) Standaardwaarde (bytes) Minimale waarde (bytes) Maximumwaarde (bytes)
Burstable
Standard_B1s 1 1 134217728 33554432 268435456
Standard_B1ms 1 2 536870912 134217728 1073741824
Standard_B2s 2 4 2147483648 134217728 2147483648
Standard_B2ms 2 8 4294967296 134217728 5368709120
Standard_B4ms 4 16 12884901888 134217728 12884901888
Standard_B8ms 8 32 25769803776 134217728 25769803776
Standard_B12ms 12 48 51539607552 134217728 32212254720
Standard_B16ms 16 64 2147483648 134217728 51539607552
Standard_B20ms 20 80 64424509440 134217728 64424509440
Algemeen doel
Standard_D2ads_v5 2 8 4294967296 134217728 5368709120
Standard_D2ds_v4 2 8 4294967296 134217728 5368709120
Standard_D4ads_v5 4 16 12884901888 134217728 12884901888
Standard_D4ds_v4 4 16 12884901888 134217728 12884901888
Standard_D8ads_v5 8 32 25769803776 134217728 25769803776
Standard_D8ds_v4 8 32 25769803776 134217728 25769803776
Standard_D16ads_v5 16 64 51539607552 134217728 51539607552
Standard_D16ds_v4 16 64 51539607552 134217728 51539607552
Standard_D32ads_v5 32 128 103079215104 134217728 103079215104
Standard_D32ds_v4 32 128 103079215104 134217728 103079215104
Standard_D48ads_v5 48 192 154618822656 134217728 154618822656
Standard_D48ds_v4 48 192 154618822656 134217728 154618822656
Standard_D64ads_v5 64 256 206158430208 134217728 206158430208
Standard_D64ds_v4 64 256 206158430208 134217728 206158430208
Bedrijfskritiek
Standard_E2ds_v4 2 16 12884901888 134217728 12884901888
Standard_E2ads_v5, Standard_E2ds_v5 2 16 12884901888 134217728 12884901888
Standard_E4ds_v4 4 32 25769803776 134217728 25769803776
Standard_E4ads_v5, Standard_E4ds_v5 4 32 25769803776 134217728 25769803776
Standard_E8ds_v4 8 64 51539607552 134217728 51539607552
Standard_E8ads_v5, Standard_E8ds_v5 8 64 51539607552 134217728 51539607552
Standard_E16ds_v4 16 128 103079215104 134217728 103079215104
Standard_E16ads_v5, Standard_E16ds_v5 16 128 103079215104 134217728 103079215104
Standard_E20ds_v4 20 160 128849018880 134217728 128849018880
Standard_E20ads_v5, Standard_E20ds_v5 20 160 128849018880 134217728 128849018880
Standard_E32ds_v4 32 256 206158430208 134217728 206158430208
Standard_E32ads_v5, Standard_E32ds_v5 32 256 206158430208 134217728 206158430208
Standard_E48ds_v4 48 384 309237645312 134217728 309237645312
Standard_E48ads_v5, Standard_E48ds_v5 48 384 309237645312 134217728 309237645312
Standard_E64ds_v4 64 504 405874409472 134217728 405874409472
Standard_E64ads_v5 , Standard_E64ds_v5 64 512 412316860416 134217728 412316860416
Standard_E80ids_v4 80 504 405874409472 134217728 405874409472
Standard_E96ds_v5 96 672 541165879296 134217728 541165879296

innodb_file_per_table

MySQL slaat de InnoDB-tabel op in verschillende tabelruimten op basis van de configuratie die u hebt opgegeven tijdens het maken van de tabel. De systeemtabelruimte is het opslaggebied voor de InnoDB-gegevenswoordenlijst. Een tabelruimte bestand per tabel bevat gegevens en indexen voor één InnoDB-tabel en wordt opgeslagen in het bestandssysteem in een eigen gegevensbestand. De innodb_file_per_table serverparameter bepaalt dit gedrag.

Instelling innodb_file_per_table om ervoor te OFF zorgen dat InnoDB tabellen maakt in de systeemtabelruimte. Anders maakt InnoDB tabellen in tabelruimten per tabel.

Azure Database for MySQL - Flexible Server ondersteunt maximaal 8 terabytes (TB) in één gegevensbestand. Als de database groter is dan 8 TB, moet u de tabel in de innodb_file_per_table tabelruimte maken. Als u één tabelgrootte hebt die groter is dan 8 TB, moet u de partitietabel gebruiken.

innodb_log_file_size

De waarde van innodb_log_file_size is de grootte (in bytes) van elk logboekbestand in een logboekgroep. De gecombineerde grootte van logboekbestanden (innodb_log_file_size innodb_log_files_in_group * ) mag niet groter zijn dan een maximumwaarde van iets minder dan 512 GB.

Een grotere logboekbestandsgrootte is beter voor prestaties, maar het nadeel is dat de hersteltijd na een crash hoog is. U moet de hersteltijd voor het zeldzame geval van een crash in balans laten en de doorvoer tijdens piekbewerkingen maximaliseren. Een groter logboekbestand kan ook leiden tot langere herstarttijden.

U kunt configureren innodb_log_size tot 256 megabytes (MB), 512 MB, 1 GB of 2 GB voor Azure Database for MySQL - Flexibele server. De parameter is statisch en vereist opnieuw opstarten.

Notitie

Als u de innodb_log_file_size parameter van de standaardwaarde hebt gewijzigd, controleert u of de waarde van show global status like 'innodb_buffer_pool_pages_dirty' 30 seconden blijft 0 om vertraging bij opnieuw opstarten te voorkomen.

max_connections

De geheugengrootte van de server bepaalt de waarde van max_connections. De grootte van het fysieke geheugen in de volgende tabel vertegenwoordigt het beschikbare RAM-geheugen , in gigabytes, op uw Flexibele Azure Database for MySQL-server.

Grootte berekenen vCores Grootte van fysiek geheugen (GB) Default value Minimumwaarde Maximumwaarde
Burstable
Standard_B1s 1 1 85 10 171
Standard_B1ms 1 2 171 10 341
Standard_B2s 2 4 341 10 683
Standard_B2ms 2 4 683 10 1365
Standard_B4ms 4 16 1365 10 2731
Standard_B8ms 8 32 2731 10 5461
Standard_B12ms 12 48 4097 10 8193
Standard_B16ms 16 64 5461 10 10923
Standard_B20ms 20 80 6827 10 13653
Algemeen doel
Standard_D2ads_v5 2 8 683 10 1365
Standard_D2ds_v4 2 8 683 10 1365
Standard_D4ads_v5 4 16 1365 10 2731
Standard_D4ds_v4 4 16 1365 10 2731
Standard_D8ads_v5 8 32 2731 10 5461
Standard_D8ds_v4 8 32 2731 10 5461
Standard_D16ads_v5 16 64 5461 10 10923
Standard_D16ds_v4 16 64 5461 10 10923
Standard_D32ads_v5 32 128 10923 10 21845
Standard_D32ds_v4 32 128 10923 10 21845
Standard_D48ads_v5 48 192 16384 10 32768
Standard_D48ds_v4 48 192 16384 10 32768
Standard_D64ads_v5 64 256 21845 10 43691
Standard_D64ds_v4 64 256 21845 10 43691
Bedrijfskritiek
Standard_E2ds_v4 2 16 1365 10 2731
Standard_E2ads_v5, Standard_E2ds_v5 2 16 1365 10 2731
Standard_E4ds_v4 4 32 2731 10 5461
Standard_E4ads_v5, Standard_E4ds_v5 4 32 2731 10 5461
Standard_E8ds_v4 8 64 5461 10 10923
Standard_E8ads_v5, Standard_E8ds_v5 8 64 5461 10 10923
Standard_E16ds_v4 16 128 10923 10 21845
Standard_E16ads_v5, Standard_E16ds_v5 16 128 10923 10 21845
Standard_E20ds_v4 20 160 13653 10 27306
Standard_E20ads_v5, Standard_E20ds_v5 20 160 13653 10 27306
Standard_E32ds_v4 32 256 21845 10 43691
Standard_E32ads_v5, Standard_E32ds_v5 32 256 21845 10 43691
Standard_E48ds_v4 48 384 32768 10 65536
Standard_E48ads_v5, Standard_E48ds_v5 48 384 32768 10 65536
Standard_E64ds_v4 64 504 43008 10 86016
Standard_E64ads_v5, Standard_E64ds_v5 64 512 43691 10 87383
Standard_E80ids_v4 80 504 43008 10 86016
Standard_E96ds_v5 96 672 50000 10 100000

Wanneer verbindingen de limiet overschrijden, wordt mogelijk de volgende fout weergegeven: 'ERROR 1040 (08004): Too many connections'.

Het maken van nieuwe clientverbindingen met MySQL kost tijd. Nadat u deze verbindingen tot stand hebt gebracht, nemen ze databaseresources in beslag, zelfs wanneer ze niet actief zijn. De meeste toepassingen vragen veel kortstondige verbindingen aan, waardoor deze situatie wordt samengesteld. Het resultaat is minder resources beschikbaar voor uw werkelijke workload, wat leidt tot verminderde prestaties.

Een verbindingspooler die niet-actieve verbindingen vermindert en bestaande verbindingen hergebruikt, helpt u dit probleem te voorkomen. Voor de beste ervaring raden we u aan een verbindingspooler zoals ProxySQL te gebruiken om verbindingen efficiënt te beheren. Zie dit blogbericht voor meer informatie over het instellen van ProxySQL.

Notitie

ProxySQL is een opensource-communityhulpprogramma. Microsoft ondersteunt het op basis van best effort. Neem contact op met de proxySQL-productondersteuning om productieondersteuning te krijgen met gezaghebbende richtlijnen.

innodb_strict_mode

Als u een foutmelding krijgt die vergelijkbaar is met 'Rijgrootte te groot (> 8126),' wilt u mogelijk de innodb_strict_mode serverparameter uitschakelen. Deze parameter kan niet globaal worden gewijzigd op serverniveau, omdat als rijgegevens groter zijn dan 8K, de gegevens worden afgekapt zonder een fout. Deze afkapping kan leiden tot mogelijk gegevensverlies. U wordt aangeraden het schema aan te passen aan de limiet voor het paginaformaat.

U kunt deze parameter instellen op sessieniveau met behulp van init_connect. Zie Niet-aanpasbare serverparameters instellen voor meer informatie.

Notitie

Als u een leesreplicaserver hebt, wordt de replicatie verbroken door de instelling innodb_strict_mode OFF op sessieniveau op sessieniveau op een bronserver. We raden u aan om de parameter ingesteld te ON houden als u replica's hebt gelezen.

time_zone

Bij de eerste implementatie bevat een exemplaar van Azure Database for MySQL - Flexible Server systeemtabellen voor tijdzonegegevens, maar deze tabellen worden niet ingevuld. U kunt de tijdzonetabellen vullen door de mysql.az_load_timezone opgeslagen procedure aan te roepen vanuit een hulpprogramma zoals de MySQL-opdrachtregel of MySQL Workbench. U kunt ook de opgeslagen procedure aanroepen en de tijdzones op globaal of sessieniveau instellen met behulp van Azure Portal of De Azure CLI.

binlog_expire_logs_seconds

In Azure Database for MySQL - Flexible Server geeft de binlog_expire_logs_seconds parameter het aantal seconden op dat de service wacht voordat het binaire logboekbestand wordt verwijderd.

Het binaire logboek bevat gebeurtenissen die databasewijzigingen beschrijven, zoals bewerkingen voor het maken van tabellen of wijzigingen in tabelgegevens. Het binaire logboek bevat ook gebeurtenissen voor instructies die mogelijk wijzigingen kunnen hebben aangebracht. Het binaire logboek wordt voornamelijk gebruikt voor twee doeleinden: replicatie- en gegevensherstelbewerkingen.

Meestal worden de binaire logboeken verwijderd zodra de ingang vrij is van de service, back-up of replicaset. Als er meerdere replica's zijn, wachten de binaire logboeken tot de langzaamste replica de wijzigingen heeft gelezen voordat ze worden verwijderd.

Als u binaire logboeken langer wilt bewaren, kunt u de binlog_expire_logs_seconds parameter configureren. Als binlog_expire_logs_seconds dit is ingesteld op de standaardwaarde van 0, wordt een binair logboek verwijderd zodra de ingang wordt vrijgemaakt. Als de waarde binlog_expire_logs_seconds groter is dan 0, wordt het binaire logboek verwijderd na het geconfigureerde aantal seconden.

Azure Database for MySQL - Flexible Server verwerkt beheerde functies, zoals back-up en leesreplicaverwijdering van binaire bestanden, intern. Wanneer u de gegevens vanuit Azure Database for MySQL - Flexible Server repliceert, moet deze parameter worden ingesteld in de primaire server om te voorkomen dat binaire logboeken worden verwijderd voordat de replica wordt gelezen uit de wijzigingen in de primaire server. Als u instelt op binlog_expire_logs_seconds een hogere waarde, worden de binaire logboeken niet snel genoeg verwijderd. Deze vertraging kan leiden tot een toename van de opslagfacturering.

event_scheduler

In Azure Database for MySQL - Flexible Server beheert de event_scheduler serverparameter het maken, plannen en uitvoeren van gebeurtenissen. Dat wil gezegd, de parameter beheert taken die worden uitgevoerd volgens een planning door een speciale MySQL Event Scheduler-thread. Wanneer de event_scheduler parameter is ingesteld ONop, wordt de Event Scheduler-thread weergegeven als een daemonproces in de uitvoer van SHOW PROCESSLIST.

Voor MySQL-versie 5.7-servers wordt de serverparameter event_scheduler automatisch 'UIT' uitgeschakeld wanneer back-up wordt gestart en serverparameter event_scheduler 'AAN' wordt teruggezet nadat de back-up is voltooid. In MySQL versie 8.0 voor Azure Database for MySQL - Flexible Server blijft de event_scheduler ongewijzigd tijdens back-ups. Om soepelere bewerkingen te garanderen, is het raadzaam om uw MySQL 5.7-servers te upgraden naar versie 8.0 met behulp van een primaire versie-upgrade.

U kunt gebeurtenissen maken en plannen met behulp van de volgende SQL-syntaxis:

CREATE EVENT <event name>
ON SCHEDULE EVERY _ MINUTE / HOUR / DAY
STARTS TIMESTAMP / CURRENT_TIMESTAMP
ENDS TIMESTAMP / CURRENT_TIMESTAMP + INTERVAL 1 MINUTE / HOUR / DAY
COMMENT '<comment>'
DO
<your statement>;

Voor meer informatie over het maken van een gebeurtenis raadpleegt u de volgende documentatie over de Event Scheduler in de MySQL-referentiehandleiding:

De event_scheduler-serverparameter configureren

In het volgende scenario ziet u een manier om de event_scheduler parameter te gebruiken in Azure Database for MySQL - Flexible Server.

Bekijk het volgende voorbeeld van een eenvoudige tabel om het scenario te demonstreren:

mysql> describe tab1;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
| +-----------+-------------+------+-----+---------+----------------+ |
| id | int(11) | NO | PRI | NULL | auto_increment |
| CreatedAt | timestamp | YES | | NULL | |
| CreatedBy | varchar(16) | YES | | NULL | |
| +-----------+-------------+------+-----+---------+----------------+ |
| 3 rows in set (0.23 sec) |
| ``` |
| To configure the `event_scheduler` server parameter in Azure Database for MySQL - Flexible Server, perform the following steps: |

1. In the Azure portal, go to your Azure Database for MySQL - Flexible Server instance. Under **Settings**, select **Server parameters**.
1. On the **Server parameters** pane, search for `event_scheduler`. In the **VALUE** dropdown list, select **ON**, and then select **Save**.

    > [!NOTE]
    > Deployment of the dynamic configuration change to the server parameter doesn't require a restart.

1. To create an event, connect to the Azure Database for MySQL - Flexible Server instance and run the following SQL command:
    ```sql

    CREATE EVENT test_event_01
    ON SCHEDULE EVERY 1 MINUTE
    STARTS CURRENT_TIMESTAMP
    ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
    COMMENT 'Inserting record into the table tab1 with current timestamp'
    DO
    INSERT INTO tab1(id,createdAt,createdBy)
    VALUES('',NOW(),CURRENT_USER());

    ```
1. To view the Event Scheduler details, run the following SQL statement:
    ```sql

    SHOW EVENTS;

    ```
    The following output appears:
    ```sql

    mysql> show events;
    +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+
    | Db | Name | Definer | Time zone | Type | Execute at | Interval value | Interval field | Starts | Ends | Status | Originator | character_set_client | collation_connection | Database Collation |
    | +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ |
    | db1 | test_event_01 | azureuser@% | SYSTEM | RECURRING | NULL | 1 | MINUTE | 2023-04-05 14:47:04 | 2023-04-05 15:47:04 | ENABLED | 3221153808 | latin1 | latin1_swedish_ci | latin1_swedish_ci |
    | +-----+---------------+-------------+-----------+-----------+------------+----------------+----------------+---------------------+---------------------+---------+------------+----------------------+----------------------+--------------------+ |
    | 1 row in set (0.23 sec) |
    | ``` |

1. After a few minutes, query the rows from the table to begin viewing the rows inserted every minute according to the `event_scheduler` parameter that you configured:

    ```azurecli
    mysql> select * from tab1;
    +----+---------------------+-------------+
    | id | CreatedAt | CreatedBy |
    | +----+---------------------+-------------+ |
    | 1 | 2023-04-05 14:47:04 | azureuser@% |
    | 2 | 2023-04-05 14:48:04 | azureuser@% |
    | 3 | 2023-04-05 14:49:04 | azureuser@% |
    | 4 | 2023-04-05 14:50:04 | azureuser@% |
    | +----+---------------------+-------------+ |
    | 4 rows in set (0.23 sec) |
    | ``` |
| 1. After an hour, run a `select` statement on the table to view the complete result of the values inserted into table every minute for an hour (as `event_scheduler` is configured in this case): |
    ```azurecli

    mysql> select * from tab1;
    +----+---------------------+-------------+
    | id | CreatedAt | CreatedBy |
    | +----+---------------------+-------------+ |
    | 1 | 2023-04-05 14:47:04 | azureuser@% |
    | 2 | 2023-04-05 14:48:04 | azureuser@% |
    | 3 | 2023-04-05 14:49:04 | azureuser@% |
    | 4 | 2023-04-05 14:50:04 | azureuser@% |
    | 5 | 2023-04-05 14:51:04 | azureuser@% |
    | 6 | 2023-04-05 14:52:04 | azureuser@% |
    | ..< 50 lines trimmed to compact output >.. |
    | 56 | 2023-04-05 15:42:04 | azureuser@% |
    | 57 | 2023-04-05 15:43:04 | azureuser@% |
    | 58 | 2023-04-05 15:44:04 | azureuser@% |
    | 59 | 2023-04-05 15:45:04 | azureuser@% |
    | 60 | 2023-04-05 15:46:04 | azureuser@% |
    | 61 | 2023-04-05 15:47:04 | azureuser@% |
    | +----+---------------------+-------------+ |
    | 61 rows in set (0.23 sec) |
    | ``` |

#### Other scenarios

You can set up an event based on the requirements of your specific scenario. A few examples of scheduling SQL statements to run at various time intervals follow.

To run a SQL statement now and repeat one time per day with no end:

```sql
CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
COMMENT 'Comment'
DO
<your statement>;

Een SQL-instructie elk uur zonder einde uitvoeren:

CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 HOUR
COMMENT 'Comment'
DO
<your statement>;

Elke dag een SQL-instructie uitvoeren zonder einde:

CREATE EVENT <event name>
ON SCHEDULE
EVERY 1 DAY
STARTS str_to_date( date_format(now(), '%Y%m%d 0200'), '%Y%m%d %H%i' ) + INTERVAL 1 DAY
COMMENT 'Comment'
DO
<your statement>;

Beperkingen

Voor servers waarop hoge beschikbaarheid is geconfigureerd, is het mogelijk dat de event_scheduler serverparameter is ingesteld OFFop . Als dit gebeurt, configureert u wanneer de failover is voltooid, de parameter om de waarde ONin te stellen op .

innodb_ft_user_stopword_table

innodb_ft_user_stopword_table is een serverparameter in MySQL waarmee de naam van de tabel met aangepaste stopwoorden voor InnoDB Zoeken in volledige tekst wordt opgegeven. De tabel moet zich in dezelfde database bevinden als de geïndexeerde tabel met volledige tekst en de eerste kolom moet van het type VARCHARzijn. In Azure Database for MySQL - Flexible Server zorgt de standaardinstelling ervoor sql_generate_invisible_primary_key=ON dat alle tabellen zonder expliciete primaire sleutel automatisch een onzichtbare primaire sleutel bevatten. Dit gedrag is strijdig met de vereisten voor innodb_ft_user_stopword_table, omdat de onzichtbare primaire sleutel de eerste kolom van de tabel wordt, waardoor deze niet werkt zoals bedoeld tijdens zoeken in volledige tekst. U kunt dit probleem oplossen door in dezelfde sessie in te stellen sql_generate_invisible_primary_key=OFF voordat u de aangepaste stopword-tabel maakt. Voorbeeld:

SET sql_generate_invisible_primary_key = OFF;
CREATE TABLE my_stopword_table (
    stopword VARCHAR(50) NOT NULL
);
INSERT INTO my_stopword_table (stopword) VALUES ('and'), ('or'), ('the');

Dit zorgt ervoor dat de stopword-tabel voldoet aan de vereisten van MySQL en dat aangepaste stopwoorden correct kunnen werken.

Niet-aanpasbare serverparameters

In het deelvenster Serverparameters in De Azure-portal worden zowel de wijzigbare als niet-aanpasbare serverparameters weergegeven. De niet-aanpasbare serverparameters zijn niet beschikbaar. U kunt een niet-configureerbare serverparameter configureren op sessieniveau met behulp van init_connect Azure Portal of de Azure CLI.