Tôi viết câu trả lời này vì tôi nghĩ rằng cả hai chúng ta đều đã hiểu sai về Quản lý tài khoản người dùng cơ chế của mariadb. Tôi cũng đã gặp phải sự cố vấn đề tương tự như bạn , vì vậy tôi đang viết câu trả lời này cho chính mình phần nào. Bạn có thể làm theo câu trả lời này hoặc danblack bất kỳ cái nào bạn thực sự cần. Như danblack đã nói, có thể không nên thay đổi "mysql" thành service_account của bạn.
Khởi tạo thư mục cơ sở dữ liệu mariadb bằng tài khoản người dùng '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
...
Như bạn có thể thấy, hai tài khoản toàn quyền mariadb, [email protected]
và [email protected]
, đã được tạo. Và bạn phải là hệ điều hành root
và mysql
người dùng sử dụng hai tài khoản mariadb này tương ứng.
Sau đó, kích hoạt và khởi động máy chủ mariadb:
$ sudo systemctl enable --now mariadb.service
Bạn có thể muốn sử dụng mysql_secure_installation
lệnh để cải thiện bảo mật ban đầu
.
Sau đó, sử dụng mariadb [email protected]
tài khoản với hệ thống root
tài khoản để kết nối với sever và tạo tài khoản mariadb mới có quyền root đặc quyền-like
với bất kỳ tên nào bạn muốn:
$ 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
Sử dụng [email protected]
tài khoản để kết nối với máy chủ và tạo cơ sở dữ liệu mới:
$ 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
Và nếu bạn đặt mật khẩu cho [email protected]
tài khoản, bạn thậm chí có thể sử dụng tài khoản này mà không cần 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