1 任务:
将本地 Mysql 中的数据迁移至线上服务器
线上 Mysql 服务器创建具有相关权限的用户
本地程序更换线上 Mysql 地址
2 实现:
安装 Mysql 并配置远程访问
- 第一步下载对应系统版本的 mysql,并解压
https://dev.mysql.com/downloads/mysql/
【其中 data 和 my.ini 是手动创建】
1 | ## my.ini文件 |
data 是空文件夹
- 用管理员运行 cmd 进入解压目录的 bin 目录
运行命令 mysqld --initialize --console
【红框的位置是 root 用户的密码】
运行命令 安装服务 mysqld --install
- 第三步 启动 mysql 服务
net start mysql
- 第四步 登录 mysql
mysql -u root -p 上面红框中的密码(或者直接回车,等到出现 password: 再输入)
- 第五步 修改 root 密码
ALTER USER "root"@"localhost" IDENTIFIED BY "root1";
这里将密码设置成了 root1
- 第六步 创建一个新用户用于远程访问
1 | use mysql; |
创建新用户:CREATE USER 'new_user'@'%' IDENTIFIED BY 'passwd';
例如:CREATE USER 'icrt'@'%' IDENTIFIED BY 'icrt123!@#';
用户:icrt 密码:icrt123!@#
【这里 host 是 % 代表可以任意 ip 访问 plugin 一定是 mysql_native_password 不然客户端连接不了】
- 为用户赋予权限
给用户赋权限 操作数据库的权限,这里赋的是全部的权限:GRANT ALL ON *.* TO 'new_user'@'%';
例如:GRANT ALL ON *.* TO 'icrt'@'%';
GRANT SELECT ON test.* TO 'icrt'@'%'; // 给用户icrt赋予test数据库的只读权限
grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利
1 | grant select on testdb.* to common_user@'%'; |
- 🌟 刷新权限【重要,否则不生效】 flush privileges;
可以通过 Navicat / Dbeaver 远程连接
Url: jdbc:mysql://服务器IP:3306/
本地程序更换 datasource 的 url 为上述 ur l 即可
本地库表上传至服务器 Mysql 数据库
方法一: 使用 Navicat 的数据传输
可能的报错,ERROR 1153 传输的文件内容太大
解决方法:
在终端中使用 MySQL 的 root 用户登录 MySQL;(本地和服务器的 mysql 都要配置以下的内容):
1 | set global max_allowed_packet=1000000000; |
方法二: 本地导出 SQL 文件,复制到服务器导入