目前我们在PHP中使用以下命令在我们的应用程序中将字符集设置为UTF-8.
由于这有点开销,我们想将其设置为MySQL中的默认设置.我们可以在/etc/my.cnf或其他地方这样做吗?
SET NAMES 'utf8'
SET CHARACTER SET utf8
Run Code Online (Sandbox Code Playgroud)
我在/etc/my.cnf中找了一个默认的字符集,但是没有关于字符集的内容.
此时,我执行以下操作将MySQL字符集和校对变量设置为UTF-8:
skip-character-set-client-handshake
character_set_client=utf8
character_set_server=utf8
Run Code Online (Sandbox Code Playgroud)
这是处理这个问题的正确方法吗?
当我尝试获取大型SQL文件(一个大INSERT
查询)时,我收到此错误.
mysql> source file.sql
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 2
Current database: *** NONE ***
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 3
Current database: *** NONE ***
Run Code Online (Sandbox Code Playgroud)
表中没有任何内容更新.我已经尝试删除和取消删除表/数据库,以及重新启动MySQL.这些都不能解决问题.
这是我的最大包大小:
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
Run Code Online (Sandbox Code Playgroud)
这是文件大小:
$ ls -s file.sql
79512 file.sql
Run Code Online (Sandbox Code Playgroud)
当我尝试其他方法时......
$ ./mysql -u root -p my_db < file.sql
Enter …
Run Code Online (Sandbox Code Playgroud) 我想通过phpMyAdmin 导入巨大的(至少 300 mb)sql脚本.
我试过了:
post_max_size = 750M
upload_max_filesize = 750M
max_execution_time = 300
max_input_time = 540
memory_limit = 1000M
Run Code Online (Sandbox Code Playgroud)
在我的php.ini
文件中,但我在导入过程中仍然遇到超时错误.
我是MySQL的新手,我在Windows上运行它.我试图从MySQL中的转储文件恢复数据库,但我收到以下错误:
$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'.
Run Code Online (Sandbox Code Playgroud)
我试过放入--binary-mode
ini文件,但它仍然给出了同样的错误.我该怎么办?请帮忙.
UPDATE
正如尼克在他的评论中所建议的那样,我试过$ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql
但它给了我以下ERROR at line 1: Unknown command '\?'.
它是一个500 Mb转储文件,当我使用gVIM查看其内容时,我所能看到的只是表达式和数据,这是不可理解的.
我必须导入1go的sql数据,我将max_allowed_packet提升到1100M以确定.
所以我使用:
我的查询
mysql -u root -p -D mainbase < GeoPC_WO.sql
Run Code Online (Sandbox Code Playgroud)
但1分钟后它在此过程中停止,我收到此错误:
**ERROR 2013 (HY000) at line 23: Lost connection to MySQL server during query
**Lost connection to MySQL server during query****
Run Code Online (Sandbox Code Playgroud) 导入sql文件时出现以下错误
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode.
Set --binary-mode to 1 if ASCII '\0' is expected. Query: ''.
Run Code Online (Sandbox Code Playgroud)
需要帮助...!!
我最近创建了一个带有 GEOMETRY 类型列的 MySQL 表。
当我使用 mysqldump 备份表时,它将我的几何列输出为带引号的字符串,其中包含一些转义字符,如 \0,以及一些看起来像 ASCII 上限范围内的原始二进制字节的字符。
当我尝试将转储恢复到另一个数据库时,它失败并显示错误:
“无法从您发送到几何字段的数据中获取 GEOMETRY 对象”。
我尝试将 --hex-blob 添加到我的命令行,但这不会更改输出或解决问题。
我敢肯定有人没有在 MySQL 中创建数据类型并忘记包含备份它的方法。我错过了什么?
谢谢。