Par*_*rto 13
如果您正在运行 n localhost,只需在终端中键入以下命令:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
如果您使用的是外部服务器,请同时输入主机 IP (xxx.xxx.xxx.xxx):
mysql -hxxx.xxx.xxx.xxx -uroot -p
Run Code Online (Sandbox Code Playgroud)
系统将提示您输入密码,输入密码即可访问 MySQL 提示。
您还可以查看有关如何重置 MySQL 密码的答案。
我更新时遇到相同的症状,但对我而言,修复(在杀死 mysql 并使用 --skip-grant-tables 重新启动以进入后)是执行
update mysql.user set plugin = '';
Run Code Online (Sandbox Code Playgroud)
更新过程喜欢将此列设置为“unix_socket”。我不知道这应该完成什么,但对我来说它打破了一切。
小智 5
我用这个解决了我的问题:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server
Run Code Online (Sandbox Code Playgroud)
非常负责。使用此解决方案,您将删除 MySql 服务器及其所有数据。
小智 5
与 Ulrich Metzger 一样,将我的机器升级到 Ubuntu 16.04 和 Mysql-server-5.7 后,我无法使用 root 登录,因为列plugin发生了变化。
我的问题没有通过sudo dpkg-reconfigure mysql-server-5.7+移除+清除+清洁得到解决。
我不得不停止 mysql 服务:
# sudo service mysql stop
然后使用以下选项重新启动 mysql 守护进程--no-grant-tables:
# 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';
Run Code Online (Sandbox Code Playgroud)
最后killmysqld_safe命令,重启mysql服务,正常连接mysql:
# sudo service mysql start
# mysql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216638 次 |
| 最近记录: |