首先 mysql安装:采用的APT安装 命令 apt-get install mysql-server 这样安装的数据库是默认超级管理员是没有密码的 mysql -uroot -p 然后直接回车键登录即可
问题:对于数据库的远程连接系统是不支持的
第一阶段:错误码 2003
解决办法: vi /etc/mysql/mysql.conf.d/mysqld.cnf 注释掉 bind-address 配置 并重启mysql systemctl restart mysql 使用navicat尝试远程连接
第二阶段:发现第一阶段执行完成之后2003的问题是解决了,但是有了新的问题 错误码1130
系统不允许远程机器获取musql的连接,
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
依次执行上面的命令 ,修改 root用户对应的host的值,让它不止再是本机 ,最后重启服务再测试连接
第三阶段:错误码1689
上网查了一下,错误是无密码登录异常 于是执行下面命令,修改密码
update user set authentication_string=password('123456') where user='root'
flush privileges;
再重试 ,依旧失败
第四阶段:登录插件差异
如果数据库安装的5.7以及之后的数据库,并且没有为root用户提供密码,它将使用auth_socket插件,该插件不关心也不需要密码
它指检查用户是否使用UNIX套接字进行连接,然后比较用户名。
如果我们要配置密码,我们需要在同一命令中同时更改插件并设置密码,先更改插件再设置密码将不起作用,插件依然将回退。
update user set plugin="mysql_native_password"; 执行命令 flush privileges;
重试之后发现成功了。