Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行mysql\u secure\u安装后,如何使用root成功登录?_Mysql_Ubuntu - Fatal编程技术网

在运行mysql\u secure\u安装后,如何使用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上以root用户身份登录,我不太清楚发生了什么。发生的事情如下:

我按照建议运行了
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