Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Common SQL commands for MySQL

Dernière mise à jour :Aug 19, 2026

ApsaraDB RDS for MySQL est 100 % compatible avec MySQL open source. Cette rubrique présente les commandes SQL les plus utiles pour la gestion des bases de données et des comptes.

Pour la référence SQL complète, consultez le Manuel de référence MySQL.

Important

ApsaraDB RDS for MySQL est un service géré. Le compte root à privilèges élevés n'est pas disponible. Vous ne pouvez pas exécuter GRANT ALL PRIVILEGES ON *.* pour accorder un contrôle global complet sur toutes les bases de données.

Référence rapide

Opération Commande
Créer une base de données CREATE DATABASE <name>;
Supprimer une base de données DROP DATABASE <name>;
Créer un compte CREATE USER 'user'@'host' IDENTIFIED BY 'password';
Supprimer un compte DROP USER 'user'@'host';
Accorder des autorisations GRANT <privilege> ON <level> TO 'user'@'host';
Consulter les autorisations d'un compte SHOW GRANTS FOR 'user'@'host';
Révoquer des autorisations REVOKE <privilege> ON <level> FROM 'user'@'host';

Gestion des bases de données

Créer une base de données

-- Minimal syntax
CREATE DATABASE <database_name>;

-- With character set and collation (recommended)
CREATE DATABASE <database_name>
  DEFAULT CHARACTER SET <charset>
  COLLATE <collation>;

Exemples

-- Create a database with the default character set.
CREATE DATABASE app_db;

-- Create a database with utf8mb4. Use utf8mb4 for most applications —
-- it supports a wider range of characters, including supplementary Unicode characters.
CREATE DATABASE app_db
  DEFAULT CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- Create a database with the GBK character set for Chinese-language content.
CREATE DATABASE cn_db
  DEFAULT CHARACTER SET gbk
  COLLATE gbk_chinese_ci;

Supprimer une base de données

DROP DATABASE <database_name>;
Important

Cette opération est irréversible. Sauvegardez vos données avant de poursuivre.

Exemple

DROP DATABASE app_db;

Gestion des comptes

Créer un compte

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

La valeur host détermine les hôtes depuis lesquels le compte peut se connecter :

**Valeur host** Effet
% Autorise les connexions depuis n'importe quel hôte. Cela correspond à la méthode de création des comptes par la console ApsaraDB RDS ; le compte pourra être supprimé ultérieurement depuis la console.
192.168.1.% Restreint les connexions à un bloc CIDR spécifique. Les comptes associés à une valeur d'hôte spécifique ne peuvent pas être supprimés depuis la console ; utilisez DROP USER à la place.

Exemples

-- Allow connections from any host.
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPass123!';

-- Restrict connections to a specific CIDR block.
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!';

Accorder des autorisations

GRANT <privilege> ON <level> TO 'username'@'host';
Paramètre Description Exemples
<privilege> L'autorisation à accorder SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES
<level> La portée de l'autorisation db_name.* (base de données), db_name.table_name (table), *.* (global)
Vous ne pouvez pas accorder ALL PRIVILEGES ON *.* . Le contrôle global complet n'est pas disponible sur ApsaraDB RDS for MySQL.

Exemples

-- Grant SELECT on all tables in app_db.
GRANT SELECT ON app_db.* TO 'app_user'@'%';

-- Grant read/write privileges on a specific table.
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.users TO 'app_user'@'%';

-- Grant all privileges on app_db to clients from the 192.168.1.x CIDR block.
-- Use with caution — this grants broad access.
GRANT ALL PRIVILEGES ON app_db.* TO 'admin_user'@'192.168.1.%';

Consulter les autorisations d'un compte

-- List all accounts and their allowed hosts.
SELECT user, host FROM mysql.user;

-- Show the privileges granted to a specific account.
SHOW GRANTS FOR 'username'@'host';
Sur les versions antérieures de RDS, si l'interrogation de mysql.user renvoie une erreur, interrogez plutôt la vue mysql.user_view .

Exemple

-- Show all privileges granted to app_user when connecting from 192.168.1.x.
SHOW GRANTS FOR 'app_user'@'192.168.1.%';

Révoquer des autorisations

Utilisez REVOKE pour supprimer des autorisations sans supprimer le compte. Notez que REVOKE utilise FROM, tandis que GRANT utilise TO.

Révoquer toutes les autorisations

-- Remove all operation privileges and the ability to grant privileges to others.
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'host';

Révoquer une autorisation spécifique

-- Revoke a specific privilege at any scope (global, database, or table).
REVOKE <privilege> ON <level> FROM 'username'@'host';
La révocation des autorisations ne supprime pas le compte. Pour supprimer le compte, exécutez DROP USER .

Exemples

-- Revoke all privileges from app_user (connecting from 192.168.1.x).
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'app_user'@'192.168.1.%';

-- Revoke UPDATE on a specific table from app_user (connecting from 10.10.0.x).
REVOKE UPDATE ON shop_db.users FROM 'app_user'@'10.10.0.%';

Supprimer un compte

DROP USER 'username'@'host';
Important

N'utilisez pas DELETE FROM mysql.user WHERE User = '<username>' AND Host = '<host>'; pour supprimer des comptes. Cette méthode peut laisser des autorisations résiduelles et provoquer des incohérences de métadonnées.

Pour supprimer un compte en toute sécurité, révoquez d'abord ses autorisations, puis supprimez-le :

-- Step 1: Revoke all privileges.
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'host';

-- Step 2: Delete the account.
DROP USER 'username'@'host';

Exemple

-- Delete the account that can only connect from the 192.168.1.x CIDR block.
DROP USER 'app_user'@'192.168.1.%';

Dépannage

Impossible de supprimer un compte depuis la console ApsaraDB RDS

Description du problème

Symptôme

La page Account Management affiche l'erreur suivante lorsque vous tentez de supprimer un compte :

Failed to delete the account. Check the request or the input parameters. Other threads in the instance may be waiting for the lock or the host value of the current database account is not set to % (allows logins from all hosts).

Solution

Cause

La console ne peut supprimer que les comptes dont host est défini sur %. Si vous avez créé le compte via SQL en spécifiant une adresse IP ou un bloc CIDR particulier, tel que 'username'@'10.10.10.1' ou 'username'@'10.%.%.%', la console ne peut pas le supprimer.

Correction

Vérifiez la valeur host du compte :

SELECT user, host FROM mysql.user WHERE user = 'username_to_delete';

Si host n'est pas %, supprimez le compte avec DROP USER :

DROP USER 'username_to_delete'@'target_host';

Rubriques connexes