この回答を書いているのは、私たち2人がユーザーアカウント管理<を誤解していると思うからです。 / a> mariadbのメカニズム。 にも遭遇しましたあなたと同じ問題 、だから私は自分自身のためにこの答えを書いています。この回答に従うか、danblack をフォローできます 、実際に必要な方。 danblackが言ったように、「mysql」をservice_accountに変更するのは良い考えではないかもしれません。
'mysql'ユーザーアカウントでmariadbデータベースディレクトリを初期化します:
$ 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
...
ご覧のとおり、2つのmariadb all-privilegeアカウント、[email protected]
および[email protected]
、 作成されました。また、オペレーティングシステムのroot
である必要があります およびmysql
ユーザーは、これら2つのmariadbアカウントをそれぞれ使用します。
その後、mariadbサーバーを有効にして起動します:
$ sudo systemctl enable --now mariadb.service
mysql_secure_installation
を使用することをお勧めします 初期セキュリティを改善する
コマンド 。
次に、mariadb [email protected]
システムroot
のアカウント サーバーに接続するためのアカウント、およびルートを持つ新しいmariadbアカウントを作成します-特権のような
好きな名前で:
$ 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