sql >> Databáze >  >> RDS >> Mysql

MySQL:Vlastnictví adresáře mysql se změní na 'mysql' z 'service_account' při restartu linuxového serveru

Tuto odpověď píšu, protože si myslím, že jsme oba špatně pochopili Správu uživatelských účtů mechanismy mariadb. Také jsem se setkal s stejný problém jako ty , tak tuto odpověď píšu tak trochu pro sebe. Můžete sledovat tuto odpověď nebo danblack podle toho, co skutečně potřebujete. Jak řekl danblack, nemusí být dobrý nápad změnit „mysql“ na váš service_account.

Inicializujte adresář databáze mariadb pomocí uživatelského účtu '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
...

Jak můžete vidět, dva mariadb all-privilege účty, [email protected] a [email protected] , byly vytvořeny. A musíte být root operačního systému a mysql k použití těchto dvou účtů mariadb.

Poté povolte a spusťte server mariadb :

$ sudo systemctl enable --now mariadb.service

Možná budete chtít použít mysql_secure_installation příkaz pro zlepšení počátečního zabezpečení .

Poté použijte mariadb [email protected] účet se systémovým root účet pro připojení k serveru a vytvořit nový účet mariadb, který má root -jako privilegia s libovolným jménem:

$ 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

Použít nový neprivilegovaný [email protected] účet pro připojení k serveru a vytvoření nové databáze :

$ 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

A pokud nastavíte heslo pro [email protected] tento účet můžete dokonce používat bez 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. Jak přimějete, aby vaše fulltextové booleovské vyhledávání zachytilo výraz C++?

  2. Parametr data aplikace Excel v dotazu SQL

  3. připojte java k mysql pomocí jdbc na osx

  4. Existuje typ časového razítka automatické úpravy pro sloupce Oracle?