自己用阿里云服务器安装了mysql,结果用navicat连接不上,然后去搜了一些解决方案,目前已经解决。
出现了ERROR 1698(28000)
- 登录MySQL
sudo mysql -u root -p
- 修改root的plugin为自己的密码
update mysql.user set authentication_string=PASSWORD('your passwd'), plugin='mysql_native_password' where user='root';
"your passwd"字段为你想设置的密码
3. 刷新
flush privileges;
本以为问题已经解决可以连接上了,没想到会出现了新的问题
ERROR 1045
接下来的操作:
- mysql –uroot –p #进入mysql环境,语法:mysql –u用户名 –p数据库密码
- set password for ‘root’@’%’ =password(‘数据库英文密码’); #设置mysql数据库密码
- GRANT ALL PRIVILEGES ON . TO “root”@”%” IDENTIFIED BY ‘数据库密码’ WITH GRANT OPTION; # 修改授权,赋予任何主机访问数据库的权限
- FLUSH PRIVILEGES; # 刷新权限,授权修改生效
当再用Navicat连接时,密码输入上面修改的密码
然后就连接成功了
中间穿插的操作
- 修改了mysql监听
vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address,如固定远程IP则改成远程IP,若监听所有IP则改成0.0.0.0或者注释bind-address。修改后重启MySQL - 登录阿里云控制台配置安全组开放3306端口