一、前言
当我们在安装完mysql之后,初始化完成后,在登录mysql时,因为mysql在初始化之后都会产生一个默认的密码,所以一般不注意,在第一次登录时,通常都会报错~
如下:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
密码错误~
二、分析过程
其实在当我们进行初始化完成之后,mysql系统会产生一个默认的密码值,我们需要记住然后进行初次登录
这里我分享下我的初始化过程~
#1、进行初始化
sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/mysql.pid --log-error=/usr/local/mysql/log/error.log --port=3307
执行完毕后,如下图所示,mysql系统会自动生成一个默认密码
这个就是在初次登录时,需要输入的密码~
2、进行初次登录
注意:这里的密码是刚才初始化后,默认生成的密码。否则报错
./mysql -u root -p
进入之后,发现无论执行什么操作都是显示如图所示
明显,提示需要重置你的密码
3、重置密码操作
# 这里我重置密码为123456
alter user user() identified by '123456';
4、然后使用重置的密码进行登录
./mysql -u root -p
OK~ 密码问题已经解决~
5、如果想要进行指定对应的主机登录
可执行如下
# 查看数据库
show databases;
# 进行mysql
use mysql;
# 然后进行主机修改
# 也可以进行密码修改
# 如果进行密码修改,需要注意的是:这里因为我下载的是 mysql-5.7.28 版本的,mysql的版本在5.7以上时是会有不同的指令操作,密码对应的字段为authentication_string, mysql5.7以下对应则是password
update user set host='xx.xxx.xxx.xxx' where user='root';
flush privileges;
exit;
6、然后便可以使用对应的主机进行登录了
./mysql -u root -p -h xxx.xxx.xxx.xxx
OK~ 成功