Siehe Abschnitt 12.4.1 Account Management Statements im MySQL-Handbuch.
Verbindung mit dem Server herstellen, z.B. lokal:
$ sudo -u root mysql -p
[sudo] Password for dennis:
password:
Einen neuen Benutzer anlegen, der sich von überall verbinden darf (Hostname = '%')
CREATE USER 'username' IDENTIFIED BY 'password';
Einen Benutzer anlegen, der sich nur lokal oder von einem bestimmten Host anmelden darf:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE USER 'username'@'vr_webdev' IDENTIFIED BY 'password';
Das Passwort verschlüsselt übergeben. Muss der Ausgabe von SELECT PASSWORD() entsprechen.
CREATE USER 'username' IDENTIFIED BY PASSWORD '...';
Der neue Benutzer hat noch keine Berechtigungen, außer sich anzumelden. MIt GRANT werden ihm Berechtigungen zugeteilt:
GRANT ALL ON db1.* TO 'username'@'localhost';
GRANT SELECT ON db2.invoice TO 'username'@'localhost';
GRANT USAGE ON *.* TO 'username'@'localhost' WITH MAX_QUERIES_PER_HOUR 30;
1) MySQL mit dem Root-User starten
su root mysql
2) Neuen Eintrag in mysql.user einfügen
USE mysql
INSERT INTO user
(host, user, password, select_priv, insert_priv, update_priv)
VALUES
('localhost', 'username', PASSWORD('mypass'), 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;
3) Eintrag überprüfen
SELECT
host, user, password, select_priv, insert_priv, update_priv
FROM user
WHERE user = 'username';
4) Aufruf von MySQL:
mysql -u USERNAME -p
Andernfalls geht MySQL davon aus, dass sich der aktuelle Systemuser ohne Passwort anmelden will.
Weitere Felder von user: