MySQL 8 root Passwort

MySQL mit skip-grant-tables starten

In der /etc/my.cnf folgendes rein packen:

[mysqld]
skip-grant-tables
# wegen dem Fehler: ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
# auch unter [mysqld] 
plugin-load-add = auth_socket.so

Anschließend MySQL restarten.

Ohne Passwort rein und root Passwort setzen

mysql -u root
FLUSH PRIVILEGES;
USE mysql;

-- MySQL 5.7
UPDATE user SET authentication_string=PASSWORD("mysecret") WHERE User='root';
UPDATE user SET plugin="mysql_native_password" WHERE User='root';

-- MySQL 8:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysecret';
-- UPDATE user SET plugin="caching_sha2_password" WHERE User='root';

quit

dev.mysql.com/doc/resetting-permissions
dev.mysql.com/doc/privilege-changes (FLUSH PRIVILEGES)

MySQL neu starten und Passwort testen

ZUERST: Das in der /etc/my.cnf auskommentieren!

sudo systemctl restart mysql

# und testen ob ich als root mit Passwort rein komme:
mysql -u root -p

mysql_secure_installation

sudo mysql_secure_installation
# darin:
# Change the root password? [Y/n] y

# und MySQL restarten
sudo systemctl restart mysql.service

# dann kann man als 'root' rein
# ACHTUNG! nur mit sudo, sonst: "Access denied for user 'root'@'localhost'"
sudo mysql -u root -p

dev.mysql.com/doc/mysql-secure-installation

Seit MySQL 8 kann man nicht mit dem User ‚root‘ arbeiten. Darum muss ein neuer User erstellt werden:

CREATE USER 'rumpelstil'@'localhost' IDENTIFIED BY 'mysecret';
GRANT ALL PRIVILEGES ON *.* TO 'rumpelstil'@'localhost';
FLUSH PRIVILEGES;