(如果想直接看如何远程连接数据库请跳过开头部分)
首先先做开始前的准备,顺便复习一下基础的sql代码;
对于创建新数据库
首先先用root用户进入数据库
mysql -uroot -p
然后输入密码进入后输入
use msql;
show databases;
可以发现目前数据库目前有这些数据库
那我们再开个数据库来供我们学习使用
接下开始创建新的数据库
create databases student;
创建成功之后输入show databases;
时候可以发现我们刚刚创建的数据库已经出现了。
然后接下来再开一个新的用户来进行授权
输入create user 用户名 identified by '密码';
这里用一个名为zhang的用户来示范,并设置密码为123456;
然后接下里进行授权
grant 权限 on 数据库to '用户名'@'主机名';
这里输入的是
grant all on student to 'zhang'@'%';
意思是授予在student这个数据库中所有的权限给zhang这个用户,主机名是任意(可以从任意的地方远程连接)
接下来我们用Navicat来进行连接
把主机地址和刚刚创建的用户名和密码输入
先测试一下看看能不能连得上
啊这.....
这里提示我们的客户端不支持服务器请求的身份验证协议;请考虑升级mysql客户端。
当然,这个时候解决办法肯定有升级这样办法。
但是我不想升级怎么办(叛逆)
其实只要知道原因就好办了,他说服务器不支持身份验证协议。
哦~~那就是说因为数据库升级之后,协议换了,所以没办法正确验证了。
那我们可以把数据库的身份验证协议手动换一下。
但这也有一个弊端,我只是想用一个账号连特定的数据库,就为了这个账号把整个数据库验证都换了有点大题小做。
那我们单独设置一下这个账号的验证方法。
alter user 'zhang'@'%' IDENTIFIED with mysql_native_password BY '123456';
把zhang这个账号的身份协议改为mysql_native_password 密码是123456
因为mysql8.0之后的加密方式更换成了caching_sha2_password
然而mysql8.0之前的加密方式为mysql_native_password
所以把这个账号单独改成使用mysql_native_password加密方式
然后重新设一下密码
alter user 'zhang'@'%' identified by '123456';
然后刷新一下
flush privileges;
然后再去连接测试一下
OK,这回看起来没问题了
成功远程连接上了。
Comments | NOTHING