I tried multiple ways to install mySql and then access the database on a fresh installation. OS is RHEL 7. package used is 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%]
then I start the server
systemctl start mysqld
After this I try to access the server with no password for root. I get error as:
[root@host1 mysql]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
As I have not set any password, not very sure why this error comes. After this I tried various options and mone could help me.
option 1 : asks to make a file and change password by using an init file. I tried using that and got output as:
[root@host1 mysql]# mysqld_safe --init-file=/home/me/mysql-init & [1]28469
-bash: mysqld_safe: command not found
Option 2 : set the password using mysqladmin command
[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)'
Option 3 : using 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)
Option 4 : mysql -u root
[root@host1 mysql]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
and various others. Can you please suggest what can be issue behind this.
“MySQL v 5.7 or higher generates a temporary random password after installation and stored that in mysql error log file, located at
/var/log/mysqld.log
for an installation by the MySQL Yum repository on CentOS 6/7. use below command to see the password:
cat /var/log/mysqld.log |grep "temporary password"
For those ever in a pickle over this:
Stop MySql server
Create a text file onetime.sql
that contains something like:
set password for 'root'@'localhost' = PASSWORD('password789');
Path that file so it is safe and other users can't get to it, perhaps /home/jason
--init-file
option:mysqld_safe --init-file=/home/jason/onetime.sql &
Wait happily while password is changed. Wait won't be long.
delete that file ... rm /home/jason/onetime.sql
Stop MySql server
Start MySql server normal way
Edit this may be necessary :
Once MySQL has stopped,
edit your /etc/my.cnf file to add the line
skip-grant-tables
restart it
Connect to MySQL using the root user.
mysql -u root
Once logged in, you should see the following prompt:
mysql>
Enter the following commands:
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD("YOUR NEW PASSWORD HERE") WHERE User='root';
mysql> flush privileges;
mysql> quit
Now stop MySQL again:
If you edited your /etc/my.cnf file, delete the skip-grant-tables line.
Now restart MySQL and test your new login.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With