在Ubuntu 16.04中安装mariaDB

在Ubuntu 16.04中安装mariaDB,mariadb,ubuntu-16.04,Mariadb,Ubuntu 16.04,我在Ubuntu16.04LTS中安装了mariaDB 10.1 我使用这个代码 sudo-apt-get-install-mariadb服务器 安装成功,但当我连接到mariadb时,它是不需要密码的 我想试试这个。但这些都不起作用 我使用了mysql\u secure\u安装命令并成功完成了配置。但它仍然不需要密码 为“root”@“%”设置密码=密码('newpass')和刷新权限 更新user set password=password('newpass'),其中user='root'

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

我使用这个代码

sudo-apt-get-install-mariadb服务器

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

我想试试这个。但这些都不起作用

  • 我使用了
    mysql\u secure\u安装
    命令并成功完成了配置。但它仍然不需要密码
  • 为“root”@“%”设置密码=密码('newpass')
    刷新权限
  • 更新user set password=password('newpass'),其中user='root' 我想使用密码。我应该怎么做?

    我对“我想使用密码。我应该怎么做?”的回答是:

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

    对于Ubuntu 15.10及更高版本,MariaDB安装时默认启用unix_socket用户身份验证插件:

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

    SELECT User, Password, Host, plugin from mysql.user WHERE user = 'root';
    
    您应该看到一个用户。这也意味着您不能以root用户身份远程登录默认安装(mysql\u secure\u安装执行的任务之一)

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

    但是,如果您绝对需要经过密码验证的root用户,则需要将插件更改为
    mysql\u native\u password

    UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';
    FLUSH PRIVILEGES;
    
    现在
    退出
    然后使用
    mysql-uroot-p
    登录

    注意:如果需要重新启动服务,则需要执行三个命令,而不仅仅是
    sudo systemctl restart mysql
    。我很确定您可以在
    .cnf
    文件中添加一些内容,以便重新启动可以按预期工作,但我无法轻松找到它。基本上,课程是使用
    unix\u socket

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

    从mysql.user中选择用户、主机、密码--可能会给出错误的线索。看起来这与此问题相同:MariaDB 10.0.17无法使用非root用户访问root。请注意,尝试使用unix套接字身份验证会破坏许多具有SSH隧道的应用程序。实际上,总体而言,使用mysql本机密码身份验证可能是一个更好的主意,这样您就可以将整个服务器埋在防火墙后面并通过隧道进入其中。我想这取决于什么样的应用程序部署(以上是位于同一地点的Wordpress、Nextcloud等的完美选择)。
    
    sudo systemctl stop mysql
    sudo kill -9 $(pgrep mysql)
    sudo systemctl start mysql