我正在尝试导入 MySQL 转储文件。
该文件是在 Linux 服务器上创建的,我正在尝试在 Windows 上导入
我登录到命令行并运行:
SOURCE c:/dump.sql
Run Code Online (Sandbox Code Playgroud)
但这似乎引发了一些字符集问题(特别是智能引号和其他非标准标点符号)。
有人建议我运行:
mysql -u username -d dbase < c:\dump.sql
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我收到错误
ERROR 2006 (HY000) at line 149351: MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
一些谷歌搜索表明这与 max_allowed_packet 开关有关,但我已经尝试过,但没有奏效。有谁知道这可能是什么?
如果有人对字符集问题有任何建议也会有所帮助。
Mih*_*şan 27
阅读问题标题中的错误消息后,我的第一反应是建议增加 max_allowed_packet。你提到你试过“那个开关”它并没有奏效。你能确认你已经正确修改了服务器的配置文件吗?您的措辞听起来像是您尝试将其用作 mysql.exe 客户端命令行上的命令行开关,这不会导致服务器改变行为。
因此,简而言之,您应该尝试做的是找到并编辑您的服务器当前正在使用的 my.cnf 文件。在该[mysqld]部分中,将 max_allowed_packet 设置更改为类似
[mysqld]
max_allowed_packet=32M
Run Code Online (Sandbox Code Playgroud)
更改配置后不要忘记重新启动服务器。
我以 32M(一个大得离谱的值)为例。由于您的查询似乎很大,您应该尝试使用此值(如果您有足够的 RAM,甚至可以尝试 64M)以查看它是否有效。
另一种选择是保持服务器原样并更改用于生成 SQL 转储的客户端的行为。告诉它将单个查询的大小限制在 1 MB 以下 - 这也应该可以解决问题。
有关更多详细信息,请参见B.1.2.10。MySQL手册中的数据包太大。
| 归档时间: |
|
| 查看次数: |
47659 次 |
| 最近记录: |