Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:la proprietà della directory mysql cambia in 'mysql' da 'service_account' al riavvio del server Linux

Sto scrivendo questa risposta perché penso che entrambi abbiamo frainteso la Gestione account utente meccanismi di mariadb. Ho anche riscontrato il stesso tuo problema , quindi sto scrivendo in qualche modo questa risposta per me stesso. Puoi seguire questa risposta o danblack 's, quello di cui hai effettivamente bisogno. Come ha detto danblack, potrebbe non essere una buona idea cambiare "mysql" nel tuo account_servizio.

Inizializza la directory del database mariadb con l'account utente 'mysql' :

$ sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
...
Two all-privilege accounts were created.
One is [email protected], it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is [email protected], it has no password either, but
you need to be the system 'mysql' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo
...

Come puoi vedere, due account mariadb all-privilege, [email protected] e [email protected] , furono creati. E devi essere il sistema operativo root e mysql utente di utilizzare questi due account mariadb, rispettivamente.

Successivamente, abilita e avvia il server mariadb:

$ sudo systemctl enable --now mariadb.service

Potresti voler usare mysql_secure_installation comando per migliorare la sicurezza iniziale .

Quindi usa mariadb [email protected] account con sistema root account per connettersi al server e crea un nuovo account mariadb con root -come privilegi con il nome che vuoi:

$ sudo mysql -u root -p  # first input your passwd to use 'sudo', then [ENTER] for empty mariadb root account passwd
[sudo] password for your_service_account:
Enter password:
...
MariaDB [(none)]> CREATE USER 'whatever_name_you_want'@'localhost' IDENTIFIED BY 'somepasswd';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* to 'whatever_name_you_want'@'localhost';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> quit
Bye

Usa il nuovo [email protected] account per connettersi al server e creare un nuovo database :

$ mysql -u whatever_name_you_want -p
Enter password:
...
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS mydb;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> quit
Bye

E se imposti la password per [email protected] account, puoi anche utilizzare questo account senza sudo :

$ sudo mysql -u root -p
[sudo] password for your_service_account:
Enter password:
...
MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somepasswd');
Query OK, 0 rows affected (0.041 sec)

MariaDB [(none)]> quit
Bye
$ mysql -u root -p
Enter password:
...
MariaDB [(none)]> quit
Bye