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