MySQL 8.0 Released – Notes for Install

Was muss ich da heute Morgen im Nachrichtenticker meines Vertrauens lesen? MySQL 8.0 ist von Oracle released worden. Also habe ich mich auf den Weg gemacht um eine Testinstallation ausrollen und zu gucken, was das Baby so kann.
Das Repository für die Communityversion könnt ihr euch als Package direkt von Oracle besorgen… Ich habe es Kraft eigener Arroganz auf einem CentOS7 installiert.
Ich weiß das die Dinge unter umständen auch bereits aus MySQL 5.7 bekannt sind, allerdings stolpere ich erst heute darüber 🙂

Probleme während der Installation

Solltet Ihr während der Installation auf eine Fehlermeldung ähnlich dieser hier stoßen

file /etc/my.cnf from install of mysql-community-server-8.0.11-1.el7.x86_64 conflicts with file from package MariaDB-common-10.2.14-1.el7.centos.x86_64

Dann ist irgendein MariaDB Paket auf eurem System installiert. Bei mir waren es folgende:

[root@cl-mysql8-01 ~]# rpm -qa | grep -i maria
MariaDB-compat-10.2.14-1.el7.centos.x86_64
MariaDB-common-10.2.14-1.el7.centos.x86_64

Nachdem ich diese Verworfen habe, klappte natürlich alles 🙂
Nun noch via systemctl start mysqld den Daemon starten und wohlfühlen.

Nice to know

Das bin ich so nicht gewohnt. Normalerweise führt man nach der Installation das Script resp. den Befehl mysql_secure_installation aus. Hat immer genervt.
Das Ding braucht man um Passwörter zu setzen, die Anonymus User zu killen und die Testdatenbank zu löschen. Das ist nun nicht mehr notwendig.

Will man direkt nach der Installation nun in die mysql Shell wechseln erscheint:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Das temporäre Passwort ist dann in der /var/log/mysqld.log zufinden:

2018-04-23T06:21:52.749722Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.11) initializing of server in progress as process 2192
2018-04-23T06:21:55.597297Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: DasPasswort
2018-04-23T06:21:57.878336Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.11) initializing of server has completed

Weiterhin verlangt MySQL nun nach dem ersten mal Einloggen von dir, dass du dein Passwort änderst!
Das Passwort könnt ihr über folgenden Befehl ändern. Bedenkt das es auch hier eine Passwortpolicy gibt.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEUES PASSWORT';

Die .my.cnf für faule Jungs

Auch die .my.cnf funktioniert nicht mehr so wie in den alten Versionen. Nach aktueller Dokumentation wurde die .my.cnf, in der man vorher seine Passwörter und User für den Login hinterlegt hat, in .mylogin.cnf umbenannt. Weiterhin prüft der mysqld die Berechtigungen der Datei.

[root@cl-mysql8-01 ~]# mysql
mysql: [Warning] /root/.mylogin.cnf should be readable/writable only by current user.

Anlegen solltet ihr das File mit dem Tool mysql_config_editor, welches ebenfalls mit der neuen Version mitgeliefert wird.

[root@cl-mysql8-01 ~]# mysql_config_editor set --user=root --password
Enter password: (Ich musste das Passwort mit "NEUES PASSWORT" eingeben)

[root@cl-mysql8-01 ~]# mysql_config_editor print
[client]
user = root
password = *****

Nun klappt der Login auch wie gewohnt.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax