### 在部署项目时,想到可以用云服务器来配置公共环境,这样就可以在多处同时使用这个数据库
说干就干,于是,把MySQL安装在了云服务器上
在运行项目时发现,项目500错误,从源头数据库进行分析,一眼就发现,是项目连不上远程服务器的MySQL了,赶紧记录一下解决的过程
### 正式开始解决
进入mysql
use mysql;
首先,网上一搜就是去给用户赋值
我复制上去就是密码不存在:
我都以为是我把列名打错了,结果一搜,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;
(分别新增用户和权限)
这时候再去表里面就能看到user了
我这里是直接把host给赋值了 % 表示所有主机都能够直接连接(使用navicat等远程连接数据库的软件都能够直接连接)
如果不是 % 而是localhost的话,就只能让本机localhost连接,我这个MySQL是放在云服务器上的,因此就直接赋值成 % 了
当然,如果你已经发现有了root用户,可以选择先删掉,再去重新增加用户和权限
drop user 'root'@'localhost';
create user 'root'@'localhost' identified by '123456';
最后赋予所有权限以及远程连接的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; #赋予所有库所有表操作权限
flush privileges;
刷新权限之后,退出重启MySQL就可以连上了!