sql >> Database >  >> RDS >> Mysql

MySQL:eigendom van mysql-map verandert in 'mysql' van 'service_account' bij het opnieuw opstarten van de linux-server

Ik schrijf dit antwoord omdat ik denk dat we allebei de Gebruikersaccountbeheer mechanismen van mariadb. Ik ben ook de tegengekomen hetzelfde probleem als jij , dus ik schrijf dit antwoord een beetje voor mezelf. Je kunt dit antwoord volgen of danblack 's, wat je ook echt nodig hebt. Zoals danblack al zei, is het misschien geen goed idee om "mysql" te wijzigen in je service_account.

Initialiseer de mariadb-databasedirectory met het 'mysql'-gebruikersaccount :

$ 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
...

Zoals u kunt zien, twee mariadb-accounts met alle bevoegdheden, [email protected] en [email protected] , werden gecreëerd. En je moet het besturingssysteem root zijn en mysql gebruiker om respectievelijk deze twee mariadb-accounts te gebruiken.

Schakel daarna de mariadb-server in en start deze:

$ sudo systemctl enable --now mariadb.service

Misschien wilt u mysql_secure_installation . gebruiken commando om de initiële beveiliging te verbeteren .

Gebruik dan mariadb [email protected] account met systeem root account om verbinding te maken met de server, en maak een nieuw mariadb-account met root -achtige privileges met welke naam je maar wilt:

$ 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

Gebruik nieuwe onbevoegde [email protected] account om verbinding te maken met de server en een nieuwe database aan te maken:

$ 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

En als u een wachtwoord instelt voor [email protected] account, je kunt dit account zelfs gebruiken zonder 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



  1. De standaardvolgorde van MySQL hangt af van WAAR

  2. Gegevens worden niet naar SQL Database verzonden met MySQLi en PHP

  3. Kan geen externe verbinding maken met EC2 MySQL-installatie

  4. MySQL-prestaties bewaken met ClusterControl