今天,我以root身份登录到Ubuntu14.04.1 LTS ll
然后是apt-get install mariadb-server (没有sudo,而是作为根)。
我和mySQL -h localhost -u root --password=<PW>在一起
拒绝用户'root'@'localhost‘的访问(使用密码: YES)
使用mySQL -u root -p,我登录到DB并执行了以下操作
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;但这没什么用。你知不知道?我没有找到类似问题的答案。
发布于 2016-03-02 13:32:04
TL;DR:作为根用户访问新版本的mysql/mariadb,在新安装之后,您需要在根shell中(即su -或sudo -i首先启动的shell内的mysql -u root )。
在Ubuntu上做了同样的升级之后,我也遇到了同样的问题。
奇怪的是
sudo /usr/bin/mysql_secure_installation将接受我的密码,并允许我设置密码,但我无法通过root客户机以mysql身份登录
我不得不从mariadb开始
sudo mysqld_safe --skip-grant-tables作为根用户访问,而所有其他用户仍然可以访问良好。
查看我注意到的根用户的mysql.user表,plugin列被设置为unix_socket,而所有其他用户都被设置为‘mysql_plugin_password’。快速查看此页面:套接字-认证-插件/解释说,Unix通过将运行客户端的进程的uid与mysql.user表中的用户的uid匹配来启用登录。换句话说,要以root的形式访问mariadb,您必须以root身份登录。
当然,在需要身份验证的情况下,可以重新启动我的mariadb守护进程,我可以以root用户身份登录
sudo mysql -u root -p或
sudo su -
mysql -u root -p完成这一操作后,我思考了如何访问而不必执行sudo,这只是运行这些mysql查询的问题。
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;(用所需的mysql根密码替换<password> )。这为根用户启用了密码登录。
另外,运行mysql查询:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;将根帐户更改为在不更改密码的情况下使用密码登录,但这可能会给您留下一个mysql/mariadb安装,上面没有根密码。
在这两种情况下,您都需要重新启动mysql/mariadb:
sudo service mysql restart瞧,我可以通过mysql -u root -p访问我的个人账户
请注意,这样做会降低安全性,,想必MariaDB开发人员选择这样的根访问工作是有充分理由的。
考虑到这一点,我很高兴不得不使用sudo mysql -u root -p,所以我将切换到它,但是我想我会发布我的解决方案,因为我在其他地方找不到解决方案。
发布于 2016-06-11 17:10:32
在ClearUbuntu16.04LTS中,本地主机的MariaDB根登录从密码样式更改为sudo登录样式。
所以,就这么做
sudo mysql -u root因为我们想用密码登录,所以创建另一个用户“user”
在MariaDB控制台..。(您可以使用“sudo -u root”进入-u控制台)
use mysql
CREATE USER 'user'@'localhost' IDENTIFIED BY 'yourpassword';
\q然后在bash shell提示符中,
mysql-workbench您还可以在本地主机上使用“user”和“yourpassword”登录。
发布于 2019-08-07 01:59:58
来自超级用户接受答案
sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;https://stackoverflow.com/questions/28068155
复制相似问题