04 Oct 2013
GRANT PRIVILEGES in mysql
Um eine MySQL-Datenbank mit einen MySQL-Benutzer anlegen und ihm Zugriff auf eine Datenbanktabelle zu geben, ist folgendes am MySQL-Command-Promt einzugeben:
- Benutzer mit allen Privileges anlegen
chrissie ~ $ mysql -u root -pmysqlrootpassword
mysql> create database web38_2;
Query OK, 0 rows affected (0.06 sec)
mysql> grant all privileges on web38_2.* to 'web38'@'localhost' identified by 'secret-pw';
- Wenn man nicht alle privileges vergeben will, kann man das so tun
GRANT USAGE ON *.* TO `web38`@`localhost` IDENTIFIED BY PASSWORD 'secret-pw';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `web38_2`.* TO `web38`@`localhost`;
- Kommt es beim anschließenden flush privileges zu folgendem Fehler:
mysql> flush privileges;
ERROR 1146 (42S02): Table 'mysql.procs_priv' doesn't exist
- Dann hat man in der Zwischenzeit ein MySql-Update durchgeführt. Es ist auf der Kommandozeile folgendes einzugeben:
chrissie ~ $ mysql_fix_privilege_tables --password=mysqlrootpassword
This script updates all the mysql privilege tables to be usable by
the current version of MySQL
- Importieren einer Datenbank von der Kommandozeile aus:
chrissie ~ $ mysql -u web38 -psecret-pw web38_2 < web38_2-dump.sql
mysql: [Warning] Using a password on the command line interface can be insecure.