man*_*nix 12 mysql linux centos
我正在尝试在具有CentOS Linux release 7.2.1511
. 看一下安装过程:
# sudo yum install mysql-server
Run Code Online (Sandbox Code Playgroud)
输出:
Dependencies Resolved
===========================================================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================================================
Removing:
mysql-community-client x86_64 5.7.10-1.el7 @mysql57-community 109 M
mysql-community-server x86_64 5.7.10-1.el7 @mysql57-community 652 M
Transaction Summary
===========================================================================================================================================================================================================
Run Code Online (Sandbox Code Playgroud)
我运行了 mysql damon:
# sudo service mysqld start
Run Code Online (Sandbox Code Playgroud)
检查服务:
# ps -ef|grep mysql
mysql 1371 1 0 22:17 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Run Code Online (Sandbox Code Playgroud)
这就是让我发疯的问题。我想第一次设置root密码,所以我做了:
# sudo mysql_secure_installation
// when password is required, I just type "enter key"
Run Code Online (Sandbox Code Playgroud)
但是输出:保护 MySQL 服务器部署。
输入用户 root 的密码:错误:用户“root”@“localhost”的访问被拒绝(使用密码:否)
谷歌搜索错误,在90%的情况下,解决方法是调用mysqld_safe --skip-grant-tables &
命令:
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;
Run Code Online (Sandbox Code Playgroud)
但是mysqld_safe
提示“找不到命令”错误。我也用 进行了测试sudo mysqld --skip-grant-tables &
,但它没有做任何事情。如果您能引导我走向正确的方向以设置 root 密码,我将不胜感激。先感谢您。
小智 23
如果您只是在 root 用户下运行 mysql 命令,您将被授予访问权限而无需输入密码,因为为 root@localhost 启用了套接字身份验证。
本指南具有误导性。
设置密码的唯一方法是切换到本机身份验证,例如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Run Code Online (Sandbox Code Playgroud)
man*_*nix 10
在我对解决方案的疯狂研究中,我查看/var/log/mysqld.log
并发现了这一行:
【注意】为root@localhost生成临时密码:abc123
看起来 mysql 5.7+ 在安装中生成一个随机密码并在该文件中提示。
小智 7
使用以下步骤重置密码:
$ sudo systemctl start mysqld
Run Code Online (Sandbox Code Playgroud)
重置 MySQL 服务器 root 密码。
$sudo grep 'temporary password' /var/log/mysqld.log
Run Code Online (Sandbox Code Playgroud)
输出类似:
10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa
Run Code Online (Sandbox Code Playgroud)
在重置mysql_secure_installation过程中使用上述密码。
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Run Code Online (Sandbox Code Playgroud)
您已成功重置 MySQL 服务器的 root 密码。使用以下命令检查 MySQL 服务器是否连接。
$ mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
请参阅我的文章:在 RHEL/Centos 7 上安装最新的 MySQL 5.7
归档时间: |
|
查看次数: |
61753 次 |
最近记录: |