在我的服务器中,每次尝试访问MySQL时,都会收到错误消息:
用户'root'@'localhost'的访问被拒绝(使用密码:NO)
当我尝试mysqladmin -u root -p password
,我得到
用户'root'@'localhost'的访问被拒绝(使用密码:是)
如何在Ubuntu服务器12.04中访问MySQL?
在我的服务器中,每次尝试访问MySQL时,都会收到错误消息:
用户'root'@'localhost'的访问被拒绝(使用密码:NO)
当我尝试mysqladmin -u root -p password
,我得到
用户'root'@'localhost'的访问被拒绝(使用密码:是)
如何在Ubuntu服务器12.04中访问MySQL?
Answers:
如果您正在运行n localhost,则只需在终端中键入以下命令:
mysql -u root -p
如果您使用的是外部服务器,请同时输入主机IP(xxx.xxx.xxx.xxx):
mysql -hxxx.xxx.xxx.xxx -uroot -p
系统将提示您输入密码,输入密码,然后您便可以访问MySQL提示符。
您也可以查看有关如何重置MySQL密码的答案。
5.x
在最后用所使用的MySQL服务器版本替换。我正在使用5.5,所以我的命令将是sudo dpkg-reconfigure mysql-server-5.5
Access denied for user 'root'@'localhost'
。你建议打电话mysql -u root -p
。该命令的结果是:Access denied for user 'root'@'localhost'
。
sudo mysql -u root -p
为我工作,但mysql -u root -p
不起作用
更新时会出现相同的症状,但对我来说,解决方法是(执行杀死mysql并使用--skip-grant-tables重新启动后进入)
update mysql.user set plugin = '';
更新过程喜欢将此列设置为“ unix_socket”。我不知道应该完成什么,但是对我来说,这破坏了一切。
mysql_socket
所以无论我设置为使用PASSWORD('xxxxxx')
,都无法正常工作。
我用这个解决了我的问题:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server
要非常负责。使用此解决方案,您将删除MySql服务器及其所有数据。
与Ulrich Metzger一样,将计算机升级到Ubuntu 16.04和Mysql-server-5.7之后,由于plugin
列已更改,我无法使用root用户登录。
我的问题无法通过sudo dpkg-reconfigure mysql-server-5.7
+清除+清除+清洁解决。
我不得不停止mysql服务:
# sudo service mysql stop
然后使用以下--no-grant-tables
选项重启mysql守护进程:
# sudo mysqld_safe --no-grant-tables &
然后在另一个终端中,使用命令进入mysql控制台(现在不需要身份验证)mysql
,并通过SQL UPDATE更新密码和插件列:
UPDATE mysql.user
SET authentication_string=PASSWORD(''),
plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';
最后,终止mysqld_safe
命令,重新启动mysql服务并正常连接到mysql:
# sudo service mysql start
# mysql
从ubuntu 14.4LTS升级到16.4LTS后,由于mysql用户表的plugin列中的输入错误,mysql根用户无法再登录。升级会将 root @ localhost用户的插件值设置为auth_socket,但如果以前使用mysql本机密码加密,则正确的条目必须是mysql_native_password。