如何使用域而不是本地主机的 root 帐户登录 CentOS 6.3 上的 MySQL?

如何使用域而不是本地主机的 root 帐户登录 CentOS 6.3 上的 MySQL?

我不知道我是否能把问题说清楚,但我在 CentOS 6.3 上使用特定域 (例如 root@mydomain) 上的 root 帐户安装了 MySQL,但当我尝试登录时,系统要求我输入 root@localhost 帐户的密码,而我无权访问该帐户。我如何登录安装在“mydomain”上的 MySQL 而不是“localhost”?

我尝试使用 bind-address='domain_ip' 编辑 my.cnf,但没有帮助,它仍然需要本地主机密码。

答案1

Mysql 维护自己的用户和密码这些信息与主操作系统帐户不同。root@localhost 和[电子邮件保护]帐户是 CentOS 上安装的默认管理员帐户。

如果你最近安装了这个mysql服务器,并且没有设置密码,那么你应该能够用空白密码访问它

mysql -u root -p
Enter password: (press enter)

或者

mysql -h yourhostname.tld -u root -p
Enter password: (press enter)

如果你能做到这一点,那么你应该通过设置密码来保护你的系统

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h yourhostname.tld password 'new-password'

或者运行

/usr/bin/mysql_secure_installation

这将为您提供各种保护系统的选项。特别注意

Disallow root login remotely? [Y/n]

问题

通常,只应允许 root 从“localhost”进行连接。这可确保有人无法从网络猜测 root 密码。

但是从你的问题来看,你似乎想要允许这样做(尽管你可能实际上并不想)。


如果其他人为您设置了此系统并设置了密码,您应该向他们索取。


如果已设置密码而您无法获取密码,则您可以按照以下步骤重置密码,前提是您具有操作系统的根访问权限。

service mysqld stop
mysqld_safe --skip-grant-tables &
mysql --user=root mysql
update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;

现在停止mysql

pkill mysql

并重新启动服务

service mysql start

您应该能够使用已知的密码登录。

答案2

默认情况下,mysql 服务已安装但未启动。如果服务未启动,则 root 密码将被拒绝。

启动 mysql:

  1. 打开一个终端窗口,该窗口位于屏幕顶部的主菜单栏上,位于“应用程序”>“系统工具”>“终端”下
  2. 当终端窗口加载时,输入su -并按回车键
  3. 现在将提示您输入 centOS 根密码。输入并按 Enter。(您在安装期间设置了根密码)。
  4. 现在输入service mysqld start然后返回

现在尝试做你之前做的事情 - 即,

mysql -uroot -p  

这次,它所说的“root”是您的 MYSQL root 密码(与您在步骤 3 中使用的 root 密码不同,如果您尚未更改密码,则默认为空白)

相关内容