mariaDB 安装在 Ubuntu 16.04

mariaDB install in Ubuntu 16.04

我在 Ubuntu16.04LTS 中安装了 mariaDB 10.1

我用这个代码。

sudo apt-get install mariadb-server

安装成功,但是当我连接到mariadb时,不需要密码!

我正在尝试这个。但是这些都不行。

  1. 我使用mysql_secure_installation 命令并成功完成配置。但它仍然不需要密码。
  2. SET PASSWORD FOR 'root'@'%' = PASSWORD('newpass');flush privilege
  3. 更新用户设置密码=密码('newpass') where user='root';

我想使用密码。我该怎么办?

我对 "i want use password. what should i do?" 的回答是:

"no, you probably don't!"(取决于您应用的部署 - 请参阅下面的评论)

使用 Ubuntu 15.10 及更高版本的 MariaDB 安装时默认启用 unix_socket 用户身份验证插件:https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/

使用 sudo mysql -uroot 全新安装登录并执行:

SELECT User, Password, Host, plugin from mysql.user WHERE user = 'root';

您应该会看到一个用户。这也意味着您无法使用默认安装以 root 身份远程登录(mysql_secure_installation 执行的任务之一)。

+------+----------+-----------+-------------+
| User | Password | Host      | plugin      |
+------+----------+-----------+-------------+
| root |          | localhost | unix_socket |
+------+----------+-----------+-------------+

我建议保持原样并创建一个具有适当权限的非 root 用户供您的应用程序使用。

但是,如果您绝对需要密码验证的根用户,您需要将插件更改为mysql_native_password

UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';
FLUSH PRIVILEGES;

现在 quit 然后使用 mysql -uroot -p 登录。

请注意,如果您需要重新启动服务,您需要执行三个命令,而不仅仅是 sudo systemctl restart mysql。我很确定您可以对 .cnf 文件添加一些内容,以便重新启动将按预期工作,但我无法轻易弄清楚。基本上课程是使用 unix_socket.

sudo systemctl stop mysql
sudo kill -9 $(pgrep mysql)
sudo systemctl start mysql