MariaDB安装时没有密码提示

mto*_*loo 20 passwords root mariadb

我已经使用Ubuntu软件中心或命令提示符(apt-get install maraidb-server)从Ubuntu 15.04存储库安装了mariadb,但没有为root用户提供密码.现在我可以在没有密码的情况下在命令行上连接到mysql,但是使用Mysql-Workbench或python mysqldb库进行连接失败了"用户'root'对'@ localhost'进行访问被拒绝"消息

小智 54

sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q
Run Code Online (Sandbox Code Playgroud)

  • 请为您的答案添加一些解释! (16认同)
  • **在Ubuntu 16.04**上,我使用Aashish给出的代码有一个"SQL语法错误":> update user set plugin =''where User ='root'; 在那里,我使用它来覆盖身份验证方法:> update user set plugin ="mysql_native_password"; (3认同)
  • 可以在[这里]找到解释(https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/) (3认同)
  • Mysql尝试使用插件验证root,而不是密码.您只需禁用root的插件使用. (2认同)

小智 9

sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q
Run Code Online (Sandbox Code Playgroud)

这需要遵循以下命令

# mysql_secure_installation
Run Code Online (Sandbox Code Playgroud)


san*_*zti 5

如果从本地主机访问,root用户通常具有无密码访问权限,因此我建议将此设置单独保留。

我还建议您创建一个权限较少的用户,并允许该用户远程登录。

create user my_admin identified by '12345';
create database my_database;
grant all on my_database.* to my_admin;
Run Code Online (Sandbox Code Playgroud)

这样,您就拥有了更多的安全性。

如果确实需要通过工作台之类的工具以root用户身份进行连接,则可以配置这些工具以创建ssh隧道并以localhost身份连接到数据库。