首先安装好mysql8.0+之后在Linux上进行登录。
- 查看远程登录权限是否开启(权限的开启仅此而已)。
mysql -uroot -p use mysql; select user,host,plugin from mysql.user;
如果查看没有root用户,就要创建root用户属性值为空,再进行更新。。如果有root用户,跳过此步骤,添加远程登录权限即可。进行查看user表数据,可以看到root用户被创建和添加权限为空。
- 创建root用户
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
- 添加空权限
update user set Host='%',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
远程登录刚开始学习是通过root用户进行的,当然这样是不安全的。查看自己的host是否为%。'%'表示允许所有IP通过root用户来访问数据库,如果是’localhost’是仅允许本机访问。plugin是否为mysql_native_password这个插件表示允许Navicate工具的访问。这样权限问题就解决了。
update user set host='%' where user='root'; //更新root的host为‘%’
更新plugin属性为mysql_native_password
alter user 'root'@'%' identified with mysql_native_password by '你的密码';
防火墙的问题暂时可以不考虑。开启了防火墙,我的Navicate仍然访问成功了。
-
通过Navicate进行远程连接Linux上的mysql8.0+数据库。
这样的常规连接的方式是错误的,会一直卡在连接过程中。很多什么改权限,防火墙啥的都试了一遍,踩坑出来的结果是在Navicate上连接的选项不对。
解决方式是不仅在常规连接上输入要连接的IP地址和密码,还要选择SSH通道方式连接(两个必须同时填入。)不勾选SSH方式的连接,就会产生上图的效果:一直连接中。
仅仅使用SSH通道,常规连接选项没有填入,就会出现1045报错,可以看到是没有用密码方式,说明是因为常规连接什么都没有填的错误。
常规选项和SSH通道方式都填写Linux的IP地址和登录密码之后,可以看到连接测试成功!!!完结撒花,搜了半天就没有告诉怎么连的。。。。
连接成功之后可以看看自己的连接信息,我是在这里看到SSH为空才测出来的,小白的难受。



