Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Quyền sở hữu thư mục mysql thay đổi thành 'mysql' từ 'service_account' khi khởi động lại máy chủ linux

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][email protected] , đã được tạo. Và bạn phải là hệ điều hành rootmysql 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn trên nhiều bảng với UNION

  2. Lỗi biểu thức đường dẫn MySQL JSON_EXTRACT

  3. Cập nhật mà không có mệnh đề where

  4. Làm cách nào để tìm nạp bản ghi đầu tiên và cuối cùng của bản ghi được nhóm trong truy vấn MySQL với các hàm tổng hợp?

  5. JDBC trên Google Apps Script. Ngoại lệ:Sao kê bị hủy do hết thời gian chờ hoặc yêu cầu của khách hàng