我尝试了多种方法来安装mySql,然后在全新安装中访问数据库.操作系统是RHEL 7.使用的包是mysql-5.7.7-0.3.rc.el7.x86_64.rpm-bundle.tar
installation process:
[root@host1 mysql]# rpm -ivh mysql-community-common-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-libs-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-client-5.7.7-0.3.rc.el7.x86_64.rpm mysql-community-server-5.7.7-0.3.rc.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-common-5.7.7-0.3.################################# [ 25%]
2:mysql-community-libs-5.7.7-0.3.rc################################# [ 50%]
3:mysql-community-client-5.7.7-0.3.################################# [ 75%]
4:mysql-community-server-5.7.7-0.3.################################# [100%]
Run Code Online (Sandbox Code Playgroud)
然后我启动服务器
systemctl start mysqld
Run Code Online (Sandbox Code Playgroud)
在此之后,我尝试访问没有root密码的服务器.我得到错误:
[root@host1 mysql]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
因为我没有设置任何密码,不太清楚为什么会出现这个错误.在此之后,我尝试了各种选项,mone可以帮助我.
选项1:要求使用init文件创建文件并更改密码.我尝试使用它并输出为:
[root@host1 mysql]# mysqld_safe --init-file=/home/me/mysql-init & [1]28469
-bash: mysqld_safe: command not found
Run Code Online (Sandbox Code Playgroud)
选项2:使用mysqladmin命令设置密码
[root@host1 mysql]# /usr/bin/mysqladmin -u root password
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
Run Code Online (Sandbox Code Playgroud)
选项3:使用mysql_secure_installation
[root@host1 mysql]# mysql_secure_installation
Securing the MySQL server deployment.
Enter password for root user:
Error: Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
选项4:mysql -u root
[root@host1 mysql]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)
和其他各种.你能否说一下这背后可能存在的问题.
对于那些曾经发痒的人:
停止MySql服务器
创建一个onetime.sql包含以下内容的文本文件:
set password for 'root'@'localhost' = PASSWORD('password789');
文件的路径,所以它是安全的,其他用户也许无法访问它 /home/jason
--init-file选项启动MySql服务器:mysqld_safe --init-file=/home/jason/onetime.sql &
密码更改时请愉快地等待.等等不会很久.
删除该文件... rm /home/jason/onetime.sql
停止MySql服务器
正常启动MySql服务器
编辑这可能是必要的:
MySQL停止后,
编辑您的/etc/my.cnf文件以添加该行
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
重启它
使用root用户连接到MySQL.
mysql -u root
Run Code Online (Sandbox Code Playgroud)
登录后,您应该看到以下提示:
mysql>
Run Code Online (Sandbox Code Playgroud)
输入以下命令:
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD("YOUR NEW PASSWORD HERE") WHERE User='root';
mysql> flush privileges;
mysql> quit
Run Code Online (Sandbox Code Playgroud)
现在再次停止MySQL:
如果您编辑了/etc/my.cnf文件,请删除skip-grant-tables行.
现在重启MySQL并测试新的登录.
小智 6
"MySQL v 5.7或更高版本在安装后生成一个临时随机密码并存储在mysql错误日志文件中,位于
/var/log/mysqld.log
由CentOS 6/7上的MySQL Yum存储库安装.使用下面的命令来查看密码:
cat /var/log/mysqld.log |grep "temporary password"
Run Code Online (Sandbox Code Playgroud)
小智 5
去做就对了:
cat /var/log/mysqld.log |grep "temporary password"
Run Code Online (Sandbox Code Playgroud)
[注意] root@localhost 生成临时密码:dI&2-&FteI8a
sudo mysql_secure_installation
Securing the MySQL server deployment. Enter password for user root: > type here temporary password
The existing password for the user account root has expired. Please set a new password.
New password: > type here your new password
Re-enter new password:
Run Code Online (Sandbox Code Playgroud)
归功于用户.pss