我刚刚在 Kubuntu 15.10 上安装了 MariaDB。我可以通过从操作系统验证用户身份的插件以 root 用户身份登录。 (这对我来说是新的,所以我正在学习它,而不是像大多数教程似乎建议的那样删除插件身份验证。)
现在我想创建一个非root用户并授予该用户所有权限,并允许用户无需密码(仅使用插件)即可登录mysql(在本地主机上)。我该怎么做?我还需要给用户一个密码吗?
答案1
找到了答案。我需要的部分是“IDENTIFIED VIA unix_socket”,如下所示:
MariaDB [(none)]> CREATE USER serg IDENTIFIED VIA unix_socket;
MariaDB [(none)]> GRANT ALL PRIVILEGES on mydatabase.* to 'serg'@'localhost';
MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+--------------+-----------+----------+-------------+
| user | host | password | plugin |
+--------------+-----------+----------+-------------+
| root | localhost | | unix_socket |
| root | mitra | | unix_socket |
| root | 127.0.0.1 | | unix_socket |
| root | ::1 | | unix_socket |
| serg | localhost | | unix_socket |
+--------------+-----------+----------+-------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
然后在外壳中:
sudo service mysql restart
要使用用户“serg”登录,请勿使用 sudo。只需使用mysql -u serg
.
答案2
您可以为该用户分配密码并在 my.cnf 文件中进行输入。
- 授予 mydatabas 的所有权限。发送至由“密码”标识的 user@localhost ;*
编辑我的cnf
[mysql]
用户=用户
密码=密码
[mysql管理]
用户=用户
密码=密码
sudo service mysql restart
mysql -h localhost -u user
答案3
根据文档:
如果SQL_MODE没有设置NO_AUTO_CREATE_USER,那么您还可以通过GRANT创建用户帐户。例如:
所以这就足够了:
GRANT SELECT ON db.* TO username@hostname IDENTIFIED VIA unix_socket;