我尝试了多种安装mySql的方法,然后通过全新安装访问数据库。操作系统为RHEL7。使用的软件包为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%]
然后我启动服务器
systemctl start mysqld
在此之后,我尝试不使用root用户密码访问服务器。我收到以下错误消息:
[root@host1 mysql]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
由于我尚未设置任何密码,因此不太确定为什么会出现此错误。在此之后,我尝试了各种选择,并且可以为我提供帮助。
选项1:要求创建文件并使用init文件更改密码。我尝试使用它,并得到如下输出:
[root@host1 mysql]# mysqld_safe --init-file=/home/me/mysql-init & [1]28469 -bash: mysqld_safe: command not found
选项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)'
选项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)
选项4:mysql -u root
[root@host1 mysql]# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
和其他各种。您能否建议这可能是什么问题。
对于曾经为此而烦恼的人:
停止MySql服务器
创建一个文本文件onetime.sql,其中包含以下内容:
onetime.sql
set password for 'root'@'localhost' = PASSWORD('password789');
该文件的路径,以便安全,其他用户无法访问该文件 /home/jason
/home/jason
--init-file
mysqld_safe --init-file=/home/jason/onetime.sql &
密码更改后,请稍候。等待不会很久。
删除该文件… rm /home/jason/onetime.sql
rm /home/jason/onetime.sql
以正常方式启动MySql服务器
编辑 这可能是必要的:
一旦MySQL停止,
编辑/etc/my.cnf文件以添加该行
skip-grant-tables
重新启动
使用root用户连接到MySQL。
mysql -u root
登录后,您将看到以下提示:
mysql>
输入以下命令:
mysql> use mysql; mysql> UPDATE user SET password=PASSWORD("YOUR NEW PASSWORD HERE") WHERE User='root'; mysql> flush privileges; mysql> quit
现在再次停止MySQL:
如果您编辑了/etc/my.cnf文件,请删除skip-grant-tables行。
现在重新启动MySQL并测试您的新登录名。