在运行mysql\u secure\u安装后,如何使用root成功登录?
我目前无法在mysql上以root用户身份登录,我不太清楚发生了什么。发生的事情如下: 我按照建议运行了在运行mysql\u secure\u安装后,如何使用root成功登录?,mysql,ubuntu,Mysql,Ubuntu,我目前无法在mysql上以root用户身份登录,我不太清楚发生了什么。发生的事情如下: 我按照建议运行了mysql\u secure\u安装,以确保mysql安装的安全。之后,我输入了被询问的默认根密码,然后输入: 不允许为root用户设置密码 删除匿名用户时选择“是” 不允许远程根用户登录时为“是” 删除测试数据库并访问该数据库时为“是” 在重新加载特权表时为“是” 完成此过程后,我尝试使用mysql-u root-p(输入默认密码)访问mysql,并收到以下消息: 错误1045(2800
mysql\u secure\u安装
,以确保mysql安装的安全。之后,我输入了被询问的默认根密码,然后输入:
- 不允许为root用户设置密码
- 删除匿名用户时选择“是”
- 不允许远程根用户登录时为“是”
- 删除测试数据库并访问该数据库时为“是”
- 在重新加载特权表时为“是”
mysql-u root-p
(输入默认密码)访问mysql,并收到以下消息:
错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用密码:是)
你对可能出现的问题有什么看法吗
我还尝试通过启动mysql来重置根密码,方法是使用——跳过授权表
,但我仍然无法登录
我使用的是
ubuntu14.04
和mysql 14.14
(LAMP-stack)。CentOS/Redhat:
根据我在文档中读到的内容,当您运行mysql\u secure\u installation
时,会生成一个临时根密码并存储在一些日志文件中
sudo grep 'temporary password' /var/log/mysqld.log
Debian/Ubuntu:
在软件包安装过程中,您会收到一条提示,询问root密码。如果不进行设置,MySQL的根用户将在没有密码的情况下创建。我们可以在软件包安装输出中读取以下行:
壳
2016-05-16T07:27:21.532619Z 1[警告]root@localhost是用
一个空密码!请考虑关闭
--初始化不安全选项
但它配置了auth_套接字插件。您将只能使用UNIX套接字进行连接,因此任何使用本地IP或网络进行连接的尝试都将失败。稍后,您可以更改密码以允许从网络进行连接(如本文所述)
我们现在所能做的就是查看根密码。允许更改根密码,因为您无法理解哈希密码,即使我们可以看到它:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
然后在新终端中运行mysql
mysql -u root
并在更改密码后运行以下查询
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
退出mysql安全模式,通过以下方式启动mysql服务
mysqladmin shutdown
sudo service mysql start
只需以root用户身份运行此脚本,您需要自定义密码
我知道这是一篇老文章,但主要答案已经过时,没有解决我的问题。
下面是我的步骤,如果有人有类似的问题,请以后参考 如果mysql正在运行,请停止它
$ sudo service mysql stop
在安全模式下启动mysql
$ sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
如果您收到错误“UNIX套接字文件的mysqld_安全目录'/var/run/mysqld'不存在”
只需创建该文件夹:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
打开新的终端窗口,登录mysql服务+选择mysql数据库:
$ mysql -u root
mysql> use mysql;
为根用户设置新密码:
mysql> update user set authentication_string=password('new-password') where user='root';
刷新权限并退出mysql:
mysql> FLUSH PRIVILEGES;
mysql> exit;
停止safemode mysql(从第二个终端,您将看到它在第一个终端停止)
重新启动mysql
$ sudo service mysql start
您现在应该可以使用具有密码的root用户登录到mysql/phpmyadmin好的,谢谢。我刚刚查看了
/var/log/
文件夹,有一个名为mysql.log
的日志文件,但它是空的。嗨@Thanos,我能知道你的mysql版本吗?嗯,还是搞不清楚。据我所知,这与auth_socket插件有关?好吧,我想我在这方面取得了一些进展。我已经将root用户的插件更改为mysql_native_密码,并将密码更改为新密码(也确认已设置),但我仍然无法登录。也许还有别的东西挡住了?好吧,我明天可以试试,我会让你知道的。
$ mysqladmin -u root -p shutdown
$ sudo service mysql start