I just wiped my Mac and did a fresh install of El Capitan. I'm struggling to connect to Mysql now. Having gone through a web server setup process, I've created a simple PHP test file:
$conn = new mysqli("127.0.0.1", "root", "xxxxxxxx");
if ($conn->connect_error) echo "Connection failed: " . $conn->connect_error;
else echo "Connected successfully";
phpinfo();
?>
When I run it, I get this error:
Warning: mysqli::mysqli(): (HY000/1862): Your password has expired. To log in you must change it using a client that supports expired passwords. in /Users/rich/Documents/DESIGN/test/index.php on line 3
Connection failed: Your password has expired. To log in you must change it using a client that supports expired passwords.
I've never seen that response from a connection before. How do I fix it if I can't connect?
EDIT
In terminal I entered the command:
mysql -u root -p
This asked me for my password (current one) which I put in. I now have access to mysql commands but anything I try results in this error:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
How do I reset the password using ALTER USER?
解决方案
So I finally found the solution myself.
Firstly I went into terminal and typed:
mysql -u root -p
This asked for my current password which I typed in and it gave me access to provide more mysql commands. Anything I tried from here gave this error:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
This is confusing because I couldn't actually see a way of resetting the password using ALTER USER statement, but I did find another simple solution:
SET PASSWORD = PASSWORD('xxxxxxxx');