由于项目需要用源码包安装了一个5.7版本的mysql
初次登录如果失败,可以通过在mysql的配置文件my.cnf
中配置无密码登录
1、在[mysqld]
配置下面插入skip-grant-tables
2、插入后重启mysql,然后直接输入mysql,无需任何参数。前提是已经创建mysql软连接,如果每有则可以进到编译好的mysql目录下面,输入./bin/mysql
即可直接进入mysql
3、进入后修改密码,执行set password for 'root(当然也可以是其他用户)'@'localhost' = password('你的密码');
,如果执行这条命令提示错误可以先执行flush privileges;
刷新MySQL的系统权限相关表,然后再执行修改密码命令,修改完成后还需执行flush privileges;
更新一下权限表。
修改完成后即可通过mysql -uroot -p
然后回车输入密码即可登录进入数据库。
ERROR 1045 (28000): Access denied for user ‘root’@‘ip’ (using password: YES)
而后通过本地navicat连接数据库是提示错误
之前mysql8.0版的数据库连接不上是因为新版数据库的加密方式不一致,但是5.7版本的加密方式是支持navicat连接的,并且密码也是确认无误的
找到最后才发现没有配置远程连接
1、进入mysql,执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
命令授权远程访问。执行完成后仍然需要再次刷新权限相关表flush privileges;
当然此处的用户也可以是其他指定用户,%也可以是指定ip
授权结束后即可在navicat重新连接数据库。