Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更改正在运行的应用程序的字符编码_Mysql_Amazon Web Services_Amazon Ec2_Character Encoding_Data Integrity - Fatal编程技术网

Mysql 更改正在运行的应用程序的字符编码

Mysql 更改正在运行的应用程序的字符编码,mysql,amazon-web-services,amazon-ec2,character-encoding,data-integrity,Mysql,Amazon Web Services,Amazon Ec2,Character Encoding,Data Integrity,首先,我读过这篇文章,也很有帮助;然而,为了100%确保重要数据不会被错误更改,我想问一些更具体的问题 一些背景: 我的公司维护一个正在运行的应用程序。它使用mysql,我们在AWS EC2实例上设置了DB 出于某种原因,我直接去检查数据库中的数据。通过运行SELECT命令,我看到了以下内容 在第二行的单元格中,按列code1,显示??,但不应显示。应该是一些日文字符 下面是我运行show变量如'char%'后的输出 另一位同事连接到完全相同的EC2实例和DB。没有编码问题发生。没有??,只

首先,我读过这篇文章,也很有帮助;然而,为了100%确保重要数据不会被错误更改,我想问一些更具体的问题

一些背景:

  • 我的公司维护一个正在运行的应用程序。它使用mysql,我们在AWS EC2实例上设置了DB
  • 出于某种原因,我直接去检查数据库中的数据。通过运行SELECT命令,我看到了以下内容
  • 在第二行的单元格中,按列
    code1
    ,显示
    ??
    ,但不应显示。应该是一些日文字符
  • 下面是我运行
    show变量如'char%'后的输出
    
  • 另一位同事连接到完全相同的EC2实例和DB。没有编码问题发生。没有
    ??
    ,只有正确的内容
  • 的输出显示“char%”之类的变量,在这一点上,与我的不同之处在于,这里有所有的
    utf8
    ,没有
    latin1
  • 我的mac电脑的系统语言是英语,另一个mac电脑是日语
  • 我的问题是:

  • 连接到EC2实例的每个主机的mysql变量是否不同?我认为它们是EC2实例/DB的变量(因此连接到它的人应该看到相同的值,但显然不是这样)

  • 我想如果我把所有变量都改成
    utf8
    ,编码问题就会消失。但考虑到破坏数据的风险,我不想随便尝试。如果在此之后仅运行SELECT命令,这会影响现有数据吗?为了数据完整性,是否必须将变量更改回
    latin1

  • 考虑到这是一个正在运行的应用程序,即使我没有执行一些CREATE或UPDATE命令,在我更改mysql编码变量之后,如果最终用户做了一些更改,该怎么办?最终用户添加的新数据是否存在编码问题


  • 编辑客户端使用的.INI文件、其命令行和/或连接属性,并使用设置utf8。另外,请看ShowCreateTable for your TABLE,我认为列/表字符集定义为utf8。这是否回答了您的问题?