Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:Kepemilikan direktori mysql berubah menjadi 'mysql' dari 'service_account' di server linux reboot

Saya menulis jawaban ini karena saya pikir kita berdua telah salah memahami Manajemen Akun Pengguna mekanisme mariadb. Saya juga menemukan masalah yang sama seperti Anda , jadi saya menulis jawaban ini untuk diri saya sendiri. Anda dapat mengikuti jawaban ini atau danblack 's, mana pun yang benar-benar Anda butuhkan. Seperti yang dikatakan danblack, mungkin bukan ide yang baik untuk mengubah "mysql" ke service_account Anda.

Inisialisasi direktori database mariadb dengan akun pengguna '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
...

Seperti yang Anda lihat, dua akun mariadb all-privilege, [email protected] dan [email protected] , diciptakan. Dan Anda harus sistem operasi root dan mysql pengguna untuk menggunakan dua akun mariadb ini.

Setelah itu, aktifkan dan mulai server mariadb :

$ sudo systemctl enable --now mariadb.service

Anda mungkin ingin menggunakan mysql_secure_installation perintah untuk meningkatkan keamanan awal .

Kemudian gunakan mariadb [email protected] akun dengan sistem root akun untuk terhubung ke sever, dan buat akun mariadb baru yang memiliki root -seperti hak istimewa dengan nama apa pun yang Anda inginkan:

$ 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

Gunakan [email protected] akun untuk terhubung ke server dan membuat database baru :

$ 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

Dan jika Anda menyetel sandi untuk [email protected] akun, Anda bahkan dapat menggunakan akun ini tanpa 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. Mengapa menggunakan InnoDB melalui MySIAM

  2. Menyortir Array PHP ke dalam Kolom

  3. Fungsi MySQL LOG10() – Mengembalikan Logaritma Basis-10 dari suatu Nilai

  4. Mengirimkan formulir 50 bidang ke beberapa tabel; POST biasa, POST AJAX atau lainnya?

  5. Pencarian teks lengkap MySql di PHP menggunakan string yang mengandung kata kunci