我在Ubuntu16.04LTS中安装了mariaDB 10.1
我使用此代码。
sudo apt-get install mariadb-server
安装成功,但是当我连接到mariadb时,它不需要密码!
我试试这个。但这些都行不通。
mysql_secure_installation
命令并成功完成配置。但它仍然不需要密码。SET PASSWORD FOR 'root'@'%' = PASSWORD('newpass');
和flush privilege
我想使用密码。我该怎么办?
答案 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
就是我所说的系统。
我仍然可以做特权事。它纯粹是化妆品。