SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_app
DB_USERNAME=root
DB_PASSWORD=password
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_app
DB_USERNAME=root
DB_PASSWORD=password
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_app
DB_USERNAME=root
DB_PASSWORD=password
php artisan config:clear
php artisan config:clear
php artisan config:clear
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#!/bin/bash
set -e NEW_PASS='password'
INIT_FILE=$(mktemp /tmp/mysql-init-XXXXXX.sql) cat > "$INIT_FILE" <<SQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${NEW_PASS}';
FLUSH PRIVILEGES;
SQL sudo chown mysql:mysql "$INIT_FILE"
sudo chmod 600 "$INIT_FILE" echo "Stopping mysql..."
sudo systemctl stop mysql echo "Starting mysql with the init file..."
sudo mysqld --user=mysql --init-file="$INIT_FILE" --daemonize sleep 3 echo "Stopping the temporary mysqld..."
sudo pkill -f "mysqld --user=mysql --init-file=$INIT_FILE" || true
sleep 2 echo "Starting mysql normally..."
sudo systemctl start mysql sudo rm -f "$INIT_FILE" echo "Testing the new password..."
mysql -u root -p"$NEW_PASS" -e "SELECT 'OK' AS status;"
#!/bin/bash
set -e NEW_PASS='password'
INIT_FILE=$(mktemp /tmp/mysql-init-XXXXXX.sql) cat > "$INIT_FILE" <<SQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${NEW_PASS}';
FLUSH PRIVILEGES;
SQL sudo chown mysql:mysql "$INIT_FILE"
sudo chmod 600 "$INIT_FILE" echo "Stopping mysql..."
sudo systemctl stop mysql echo "Starting mysql with the init file..."
sudo mysqld --user=mysql --init-file="$INIT_FILE" --daemonize sleep 3 echo "Stopping the temporary mysqld..."
sudo pkill -f "mysqld --user=mysql --init-file=$INIT_FILE" || true
sleep 2 echo "Starting mysql normally..."
sudo systemctl start mysql sudo rm -f "$INIT_FILE" echo "Testing the new password..."
mysql -u root -p"$NEW_PASS" -e "SELECT 'OK' AS status;"
#!/bin/bash
set -e NEW_PASS='password'
INIT_FILE=$(mktemp /tmp/mysql-init-XXXXXX.sql) cat > "$INIT_FILE" <<SQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${NEW_PASS}';
FLUSH PRIVILEGES;
SQL sudo chown mysql:mysql "$INIT_FILE"
sudo chmod 600 "$INIT_FILE" echo "Stopping mysql..."
sudo systemctl stop mysql echo "Starting mysql with the init file..."
sudo mysqld --user=mysql --init-file="$INIT_FILE" --daemonize sleep 3 echo "Stopping the temporary mysqld..."
sudo pkill -f "mysqld --user=mysql --init-file=$INIT_FILE" || true
sleep 2 echo "Starting mysql normally..."
sudo systemctl start mysql sudo rm -f "$INIT_FILE" echo "Testing the new password..."
mysql -u root -p"$NEW_PASS" -e "SELECT 'OK' AS status;"
bash mysql-reset.sh
bash mysql-reset.sh
bash mysql-reset.sh
mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS my_app;"
mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS my_app;"
mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS my_app;"
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
php artisan migrate
php artisan migrate
php artisan migrate
sudo mysql -e "ALTER USER 'root'@'localhost' ..."
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
sudo mysql -e "ALTER USER 'root'@'localhost' ..."
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
sudo mysql -e "ALTER USER 'root'@'localhost' ..."
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql -u root -p
mysql -u root -p
mysql -u root -p
mysql
ERROR 1045 (28000): Access denied for user 'your_username'@'localhost' (using password: NO)
mysql
ERROR 1045 (28000): Access denied for user 'your_username'@'localhost' (using password: NO)
mysql
ERROR 1045 (28000): Access denied for user 'your_username'@'localhost' (using password: NO)
[client]
user=root
password=password
[client]
user=root
password=password
[client]
user=root
password=password
chmod 600 ~/.my.cnf
chmod 600 ~/.my.cnf
chmod 600 ~/.my.cnf
mysql -e "SELECT CURRENT_USER();"
mysql -e "SELECT CURRENT_USER();"
mysql -e "SELECT CURRENT_USER();"
CREATE DATABASE IF NOT EXISTS my_app;
CREATE USER 'my_app_user'@'localhost' IDENTIFIED BY 'a_real_password';
GRANT ALL PRIVILEGES ON my_app.* TO 'my_app_user'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE IF NOT EXISTS my_app;
CREATE USER 'my_app_user'@'localhost' IDENTIFIED BY 'a_real_password';
GRANT ALL PRIVILEGES ON my_app.* TO 'my_app_user'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE IF NOT EXISTS my_app;
CREATE USER 'my_app_user'@'localhost' IDENTIFIED BY 'a_real_password';
GRANT ALL PRIVILEGES ON my_app.* TO 'my_app_user'@'localhost';
FLUSH PRIVILEGES; - Check the .env first. The simplest fix is usually the right one.
- Try sudo mysql. If it works, you are using socket auth and you can set a password right there.
- If root already has a password you do not know, reset it with an init file. Do not edit mysql.user by hand and do not run with --skip-grant-tables if you can avoid it.
- After the reset, remember that sudo mysql will not work anymore. Use mysql -u root -p.
- Drop a ~/.my.cnf with mode 600 so you can just type mysql and get in.
- For real projects, do not use root. Make an app user with access to one database.