Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :la propriété du répertoire mysql passe à "mysql" à partir de "service_account" au redémarrage du serveur Linux

J'écris cette réponse parce que je pense que nous avons tous les deux mal compris la Gestion des comptes utilisateurs mécanismes de mariadb. J'ai également rencontré le même problème que toi , donc j'écris cette réponse pour moi un peu. Vous pouvez suivre cette réponse ou danblack 's, selon ce dont vous avez réellement besoin. Comme l'a dit danblack, ce n'est peut-être pas une bonne idée de remplacer "mysql" par votre service_account.

Initialiser le répertoire de la base de données mariadb avec le compte utilisateur '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
...

Comme vous pouvez le voir, deux comptes mariadb tous privilèges, [email protected] et [email protected] , ont été créés. Et vous devez être le système d'exploitation root et mysql utilisateur d'utiliser ces deux comptes mariadb, respectivement.

Ensuite, activez et démarrez le serveur mariadb :

$ sudo systemctl enable --now mariadb.service

Vous pouvez utiliser mysql_secure_installation commande pour améliorer la sécurité initiale .

Ensuite, utilisez mariadb [email protected] compte avec le système root compte pour se connecter au serveur, et créer un nouveau compte mariadb qui a la racine -comme privilèges avec le nom que vous voulez :

$ 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

Utiliser le nouveau [email protected] compte pour se connecter au serveur et créer une nouvelle base de données :

$ 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

Et si vous définissez un mot de passe pour [email protected] compte, vous pouvez même utiliser ce compte sans 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