背景(and 前提)
甲方要换新服务器,要把项目迁移到新服务器上。(这篇主要讲数据库的迁移)
整体都使用的cmd进行操作的,用navicat等软件操作应该会更方便一些,但是我们服务器上没有。
整体流程
1. 将旧服务器上数据库备份成sql文件
2. 新服务器安装mysql,并新增旧服务器上的用户
3. 新服务器恢复备份。
4. 新服务器打开防火墙,并开放3306端口
旧服务器备份sql文件
备份数据库的命令通常使用 mysqldump
工具来完成。格式如下:
mysqldump -u <username> -p<password> <database_name> > <backup_file.sql>
其中:
<username>
是连接MySQL的用户名;<password>
是该用户名的密码(注意-p
与密码之间没有空格,如果密码为空,则直接使用-p
);<database_name>
是要备份的数据库的名称;<backup_file.sql>
是备份的输出文件名,通常以.sql
扩展名结尾。
遇到的问题:
mysqldump: Got error: 2005: Unknown MySQL server host 'localhost' (2) when tryin g to connect
解决:
在备份命令中加入 -h 127.0.0.1
mysqldump -h 127.0.0.1 -u <username> -p<password> <database_name> > <backup_file.sql>
新服务器安装mysql
我安装的版本是8.0.13
1. 下载mysql
夸克地址链接:https://pan.quark.cn/s/367ec0dc9d23
提取码:KykZ
2. 解压到没有中文和空格的目录下。
3. 加入配置文件my.ini
自己创建,内容如下:
[mysqld]
# 设置3306端口
port=3306
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
bind-address = 0.0.0.0
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
4. 配置环境变量:
新增MYSQL_HOME 值填你解压的路径
path中新增%MYSQL_HOME%\bin
5. 管理员身份进入命令行
win +R 输入cmd
6. mysql初始化:会产生一个临时密码,后面登录要用,登录以后再改密码
mysqld --initialize --user=mysql --console
7. 安装mysql服务
mysqld --install
8. 启动mysql服务:(这里遇到一个巨离谱的错误,出错了去看下面遇到的问题)
net start mysql
9. 登录mysql
mysql:mysql -u root -p
输入上面命令,提示输入密码,把刚才的临时密码输入进去
10. 改root用户密码和权限
改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
改权限:
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
11. 新增用户(一般是你项目中用到的用户,并设置用户权限为任何机器都可以访问)
以我的代码为例:
创建用户:
CREATE USER 'pacs'@'%' IDENTIFIED WITH mysql_native_password BY 'pacs';
赋予用户全部权限:
GRANT ALL PRIVILEGES ON *.* TO 'pacs'@'%' WITH GRANT OPTION;
12. 恢复数据库(我用的是在mysql内部命令恢复)
1. 新建要恢复的数据库名:cerate database 数据库名;
2. 进入数据库 use 数据库名;
3. sourse sql文件名(把sql文件放在服务器中,写绝对路径就可以访问);
遇到的问题:
在启动mysql服务的时候,提示错误:
找不到指定文件,具体如下:
C:\MYSQL\mysq\mysql-8.0.13-winx64\bin>net start mysql
发生系统错误 2。
系统找不到指定的文件。
解决办法
1. win+R输入regedit
2.进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
3. 双击 MySQL映像文件ImagePath
4. 把它的值修改为正确的(你mysql解压路径下面的bin\mysqld MySQL)
打开防火墙,并开放3306端口
可以参考:win10 打开指定端口号_windows开启3306端口-CSDN博客
特别鸣谢:mysql安装过程来自:Windows安装MySQL8.0详细步骤-CSDN博客