在新版的MySQL软件的安全特性总是受欢迎的,他们可以影响到使用和性能。现在在默认情况下,MySQL 5.7创建了一个root用户密码,所以在安装的本身可以被认为是安全的。这是一个必要的改变,但它已经混淆了一些客户和用户。我看到很多人在社交网站上询问着个变化。 我的root密码在哪? 答案取决于你安装MySQL 5.7或Percona Server 5.7的方式。我将要显示在哪里可以找到密码,这取决于你安装安装的方法和使用的分布。对于这些所有的例子,我认为这是一个新的安装,并且您可以使用默认的my.cnf。 Centos/Red Hat - RPM包 在安装过程中不显示密码。它是在错误日志中。自动生成的my.cnf包含这行: log-error=/var/log/mysqld.log 所以,这是我们的密码: # cat /var/log/mysqld.log | grep "temporary password" 2016-05-16T07:09:49.796912Z 1 [Note] A temporary password is generated for root@localhost: 8)13ftQG5OYl Debian/Ubuntu 在软件包安装过程中,你会得到一个提示,询问root密码。如果您不设置它,MySQL会自动将root用户设成无密码。我们可以在包安装输出中读取以下行: 2016-05-16T07:27:21.532619Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
但这是配置了auth_socket插件。你只能使用UNIX socket连接,因此任何试图使用本地IP或网络连接失败。稍后,您可以更改密码,允许来自网络的连接(如这篇博客中解释)。 但它使用了auth_socket配置插件。你将只能使用UNIX socket连接,因此任何试图使用本地IP或网络连接都会出现故障。稍后,你可以更改密码,以便允许网络连接(如在 这篇文章 中解释道)。 所有的分布——二进制包 自从MySQL 5.7.6的mysql_install_db被弃用以来,你需要使用mysqld来初始化所有系统数据库(如MySQL,它包含用户和密码)。你有两种方法: –initialize:这是默认的和推荐的选项。它将创建一个MySQL数据库包括一个随机密码,将写在错误日志中。 # tail -n1 /var/log/mysql/error.log 2016-05-16T07:47:58.199154Z 1 [Note] A temporary password is generated for root@localhost: wzgds/:Kf2,g 如果你没有错误日志的配置指令,或在任何my . Cnf,那么它将在datadir中写下host_name.err名字。 –initialize-insecure:datadir将初始化没有设置密码的root用户随机设置一个密码。 # tail -n1 /var/log/mysql/error.log 2016-05-16T07:51:28.506142Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. 总结 不幸的是,更高的安全性也会带来更多的混乱。根据不同的安装方法和分布,MySQL 5.7的root密码的过程是不同的,所以在每次安装后要多加关注错误日志,并且也要看安装过程中在屏幕上输出的显示。万一你真的丢失了(或由于某种原因删除了错误日志),你仍然可以启动mysqld,使用–skip-grant-tables来访问数据库和更改密码。 (责任编辑:好模板) |