... gegen Computerkopfschmerzen

macOS: Installation von MySQL

In diesem Tutorial wird gezeigt, wie MySQL auf macOS installiert wird, wobei das data-Verzeichnis im Benutzerordner liegen soll.

Inhalt:

MySQL-Software installieren

Installationshinweise gibt es hier:
https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html

Die neueste Version von MySQL Community Server kann man hier herunterladen:
https://dev.mysql.com/downloads/mysql/

Ältere Versionen stehen im Archiv von MySQL Community Server zur Verfügung:
https://downloads.mysql.com/archives/community/
z. B. Version 8.0.23 (mysql-8.0.23-macos10.15-x86_64.dmg)

Doppelklick auf die .dmg-Datei, dann auf die .pkg-Datei, um das Installationsprogramm zu starten.

Unter „Configuration“:
Use Legacy Password Encryption auswählen
Start MySQL Server once the installation is complete: Haken rausnehmen

ansonsten Vorschlagswerte übernehmen.

Nach Abschluß der Installation gibt es in den Systemeinstellungen einen neuen Eintrag für MySQL.

Pfad um mysql-Verzeichnis ergänzen

im Terminal:
% vi ~/.zshrc

einfügen:

PATH=${PATH}:/usr/local/mysql/bin

% source .zshrc


data-Verzeichnis in den Benutzerordner verschieben

Die MySQL-DB soll im Ordner ~/Grails/MySQL-DB/data anstatt in /usr/local/mysql/data liegen.
(Server ist gestoppt)

neuen Zielordner anlegen::
% mkdir ~/Grails
% mkdir ~/Grails/MySQL-DB

/usr/local/mysql/data an den Zielort verschieben:
% cd /usr/local/mysql
% sudo mv data ~/Grails/MySQL-DB/
% sudo ln -s ~/Grails/MySQL-DB/data data

Dann den MySQL-Server in den Systemeinstellungen starten. Wenn alles funktioniert hat, ist die Ampel grün.

Herunterfahren von MySQL im Terminal:
% mysqladmin -u root shutdown


Starten von MySQL:
% sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &


Testen, ob der Server läuft:
% mysqladmin -u root -p version


Die aktuell genutzten Werte des Servers sieht man mit:
% mysqladmin -u root -p variables


MySQL-DB und Benutzer anlegen

% mysql -u root -p

mysql> create database teddies;
mysql> use teddies;

mysql> CREATE USER 'pieper'@'localhost' IDENTIFIED BY '010203';

mysql> grant INSERT,UPDATE,DELETE,SELECT on teddies.* to pieper@localhost;

mysql> show grants for pieper@localhost;
+-----------------------------------------------------------------------------+
| Grants for pieper@localhost |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `pieper`@`localhost` |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `teddies`.* TO `pieper`@`localhost` |
+-----------------------------------------------------------------------------+

korrigieren mit:
mysql> revoke SELECT, INSERT on teddies.* from pieper@localhost;


Weitere Hinweise

Berechtigungen auf dem data-Verzeichnis

Alle Verzeichnisse bis hin zum data-Verzeichnis müssen für _mysql zugänglich sein.
drwxr-xr-x   4 pieper  staff    128  3 Mär 10:31 Grails
drwxr-xr-x+ 18 pieper staff 576 3 Mär 10:30 pieper
drwxr-xr-x 3 pieper staff 96 3 Mär 12:41 MySQL-DB
drwxr-x--- 26 _mysql _mysql 832 3 Mär 12:00 data
lrwxr-xr-x 1 root wheel 34 3 Mär 12:29 /usr/local/mysql/data -> /Users/pieper/Grails/MySQL-DB/data


Keine Verbindung zu MySQL?

Bei Problemen mit mysql kann es sein, daß es auf dem falschen Port läuft (Standard ist 3306).
Den voreingestellten Port sieht man so:
% mysqladmin variables |grep " port   "

den aktuell genutzten Port anzeigen mit:
% sudo lsof -i -P | grep -i mysql


root-Passwort (vorübergehend) deaktivieren

Das root-Passwort kann so deaktiviert werden:
% mysqladmin -u root -p password
Enter password: <altes PW>
New password: <leer>
Confirm new password: <leer>

Dann die mysql-Kommandos ohne „-p“ ausführen (oder mit -p, und beim PW-Prompt einfach Enter drücken)


Mac OS Catalina
MySQL Community Server 8.0.23