Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Собствеността на директорията mysql се променя на 'mysql' от 'service_account' при рестартиране на linux сървър

Пиша този отговор, защото мисля, че и двамата сме разбрали погрешно Управление на потребителски акаунт механизми на mariadb. Срещнах и същия проблем като теб , така че пиша този отговор донякъде за себе си. Можете да следвате този отговор или danblack 's, каквото всъщност ви трябва. Както каза danblack, може да не е добра идея да промените "mysql" във вашия service_account.

Инициализирайте директорията на база данни mariadb с потребителски акаунт '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
...

Както можете да видите, два акаунта с всички привилегии в mariadb, [email protected] и [email protected] , бяха създадени. И трябва да сте операционна система root и mysql потребител да използва съответно тези два акаунта в mariadb.

След това активирайте и стартирайте mariadb сървър :

$ sudo systemctl enable --now mariadb.service

Може да искате да използвате mysql_secure_installation команда за подобряване на първоначалната сигурност .

След това използвайте mariadb [email protected] акаунт със системен root акаунт, за да се свържете към сървъра, и създайте нов акаунт в mariadb, който има root -подобни привилегии с каквото име искате:

$ 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

Използвайте нов непривилегирован [email protected] акаунт, за да се свържете със сървъра и да създадете нова база данни :

$ 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

И ако зададете парола за [email protected] акаунт, можете дори да използвате този акаунт без 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Вмъкване и присъединяване

  2. Какво не се отнася в този SQL?

  3. MYSQL таблица със статични стойности и динамични стойности

  4. Поправете „ГРЕШКА 1136 (21S01):Броят на колоните не съвпада с броя на стойностите на ред 1“ при вмъкване на данни в MySQL

  5. mySQL regex в клаузата where