1.linux在线安装mysql
这里直接在线安装即可
yum install mysql-server
要是有网络,在线安装最为便捷,省去自己手动下包的麻烦
2.启动mysql
systemctl start mysqld # 启动mysql服务
systemctl enable mysqld # 设置开机自启动
3.修改mysql密码
初始密码需及时修改
这里可以从/var/log/mysql/mysqld.log中获取初始密码
这里可以看到我们自动安装启动的mysql服务未设置密码
那我们直接登录
mysql -u root -p
弹出输入密码的提示后,直接回车就行
然后开始修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX'; # xxx即为你的密码
flush privileges; # 刷新一下权限
这里有几个注意点:
1.修改root密码时,需注意这里是localhost还是%,我们的修改密码的sql语句中与user表里保持一致,不然会报 ERROR 1396 (HY000)的错误
2.注意一下plugin列是哪种认证方式,现在默认是caching_sha2_password,我们需要在配置文件里修改一下,修改为mysql_native_password方式
default_authentication_plugin=mysql_native_password
修改完重启下mysql服务再修改密码
3.修改密码时要是提示
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,则我们先执行下flush privileges;再执行修改密码的语句就可以了
忘记密码的情况:
如果忘记密码怎么办
在/etc/my.cnf配置文件中加入一行skip-grant-tables(注意要加在[mysqld]下面,如果没有[mysqld],自己新增一下)
然后重启数据库
systemctl restart mysqld
再登录就不需要密码啦,直接回车就登录进去了,然后像上面一样修改密码就可以了
修改完密码后,我们把配置文件中的skip-grant-tables注掉,再重启下mysql,就可以正常使用root用户登录了
注意:
mysql8不能使用这种方法修改密码
update mysql.user set authentication_string=‘123456’ where user=‘root’;
这个authentication_string字段都是hash后的值,直接修改会导致校验不通过