Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:A propriedade do diretório mysql muda para 'mysql' de 'service_account' na reinicialização do servidor linux


Estou escrevendo esta resposta porque acho que ambos entendemos mal o Gerenciamento de conta de usuário mecanismos de mariadb. Também encontrei o mesmo problema que você , então estou escrevendo esta resposta para mim mesmo. Você pode seguir esta resposta ou danblack 's, o que você realmente precisa. Como danblack disse, pode não ser uma boa ideia alterar "mysql" para sua conta_de_serviços.

Inicialize o diretório do banco de dados mariadb com a conta de usuário '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
...

Como você pode ver, duas contas mariadb com todos os privilégios, [email protected] e [email protected] , foram criados. E você deve ser o sistema operacional root e mysql usuário use essas duas contas mariadb, respectivamente.

Depois disso, habilite e inicie o servidor mariadb:
$ sudo systemctl enable --now mariadb.service

Você pode querer usar mysql_secure_installation comando para melhorar a segurança inicial .

Em seguida, use mariadb [email protected] conta com sistema root conta para se conectar ao servidor e criar uma nova conta mariadb que tenha root -como privilégios com o nome que você quiser:
$ 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

Use o novo [email protected] conta para se conectar ao servidor e criar um novo banco de dados:
$ 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 você definir a senha para [email protected] conta, você pode até usar esta conta sem 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