mariaDB安装在Ubuntu 16.04中

时间:2016-08-28 08:41:17

标签: mariadb 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'),其中user ='root';
  4. 我想使用密码。我该怎么办?

2 个答案:

答案 0 :(得分:2)

我的答案是"我想要使用密码。我该怎么办?"是:

"不,您可能不会!" (取决于您的应用的部署 - 请参阅下面的评论)

使用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';

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

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

我建议保持原样并创建一个非root用户,并为您的应用程序提供相应的权限。

但是,如果您绝对需要经过密码验证的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

答案 1 :(得分:-1)

雅虎! 经过几周的尝试,这终于有效。

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

现在我唯一损坏的就是我的终端。

sudo su 以前给 root@compaq 但现在只给出 compaq 其中compaq就是我所说的系统。 我仍然可以做特权事。它纯粹是化妆品。