相关疑难解决方法(0)

如何设置默认字符集?

我想在mysql中创建一个新的db.我将utf8设置为默认字符集,但是当我尝试重新启动数据库时,mysql无法重新启动并发布以下提示:

试图启动服务器...无法重新连接到MySQL服务器.服务器无法启动.

插件'FEDERATED'已停用.

C:\ Program Files\MySQL\MySQL Server 5.5\bin\mysqld:未知变量'default-character-set = utf8'

中止

C:\ Program Files\MySQL\MySQL Server 5.5\bin\mysqld:关闭完成

我知道在取消默认字符集后,mysql会重启.但是如果我必须设置默认字符集,还有其他方法可以让mysql再次运行吗?

mysql

12
推荐指数
2
解决办法
2万
查看次数

WordPress错误建立MySQL数据库连接IIS10

我正在尝试在我的本地Windows 10机器上使用MySQL设置WordPress.我收到这个错误:

建立数据库连接时出错这可能意味着wp-config.php文件中的用户名和密码信息不正确,或者我们无法联系localhost:3307上的数据库服务器.这可能意味着主机的数据库服务器已关闭.

我已经在这里检查:在wordpress上建立数据库连接时出错

  1. 您确定拥有正确的用户名和密码吗?
    是的,我可以使用root凭据登录到SQL Server Workbench ,这样就可以了
  2. 您确定已键入正确的主机名吗?
    这就是我在下面尝试的
  3. 您确定数据库服务器正在运行吗?
    是的,在MySQL工作台中检查并且它正在运行

我运行了这个查询select @@hostname,它给了我:DESKTOP-CFT2ESY

我尝试添加到wp-config.php(不是所有的同时):

define('DB_HOST', 'localhost:3307');
define('DB_HOST', 'localhost:8899');
define('DB_HOST', 'localhost');
define('DB_HOST', 'DESKTOP-CFT2ESY');
define('DB_HOST', '127.0.0.1');

这些都不起作用,只是更改了上面错误消息中的主机名字符串.

然后我补充说:
define('WP_ALLOW_REPAIR', true);
define('DB_CHARSET', 'utf8');

但这根本不会改变错误信息.

更新1

我跑了SHOW GLOBAL VARIABLES LIKE 'PORT';,我的服务器在端口3306上运行.在WorkBench中,我看到我的数据库已启动并正在运行.我还在root我的数据库模式中添加了用户的所有权限.我的用户Limit to hosts matching设置为localhost.

更新2

然后我运行了我在这里找到的PHP代码(我只是将root用户的密码更改为root用户的密码):

<?php

$host="localhost"; 

$root="root"; 
$root_password="rootpass"; 

$user='newuser';
$pass='newpass';
$db="newdb"; 

    try {
        $dbh = new PDO("mysql:host=$host", $root, $root_password);

        $dbh->exec("CREATE DATABASE `$db`;
                CREATE USER …
Run Code Online (Sandbox Code Playgroud)

php mysql wordpress iis-10 mysql-8.0

9
推荐指数
1
解决办法
716
查看次数

将列排序规则转换为表/数据库默认值

我见过的每一篇关于SO的帖子都表明运行以下SQL:

ALTER TABLE <tablename> CONVERT TO CHARACTER SET utf8  COLLATE utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

除非我弄错了,否则它的问题在于它明确指定列排序规则,因此当你mysqldump数据库时你最终得到这样的东西:

  `address` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
  `city` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `state` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
  `zipcode` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)

我的问题是..有没有办法将列排序规则转换为表或数据库默认值而不执行此操作?

例如,我有可能看起来像这样的表:

  `address` varchar(150) DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  `state` varchar(2) COLLATE utf8_general_ci DEFAULT NULL,
  `zipcode` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)

我想要的是将所有列转换为utf8_unicode_ci(表/数据库默认值),但不要将每列显式设置为该排序规则,这样当我mysqldump转换后的表时,它看起来像这样:

  `address` varchar(150) DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  `state` varchar(2) DEFAULT NULL,
  `zipcode` varchar(10) DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)

在表创建语句末尾有一行,用于定义默认字符集和排序规则: ENGINE=InnoDB DEFAULT …

mysql database

8
推荐指数
1
解决办法
3826
查看次数

错误:R无法连接到MySQL

我昨天将MySQL更新到最新版本8.0.11,并尝试使用RMySQL连接到MySQL,但它无法正常工作,我找不到任何解决方案.

我的代码:

library(RMySQL) 
con <- dbConnect(MySQL(), user="hello", password="hi", dbname = "webscrape", host="xx.xxx.xxx.xxx", port=xxxx)
Run Code Online (Sandbox Code Playgroud)

错误:

Error in .local(drv, ...) : 
  Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)
Run Code Online (Sandbox Code Playgroud)

mysql r rmysql

6
推荐指数
1
解决办法
2244
查看次数

mysql_fetch_array返回非Unicode文本

我已经创建了一个简单的PHP页面来获取POST数据并获取sql查询然后打印结果.我正在使用mysql_fetch_array函数.

代码工作得很好,但响应是非Unicode文本,它返回如下内容:

?????ABC?????
Run Code Online (Sandbox Code Playgroud)

请注意,数据库排序规则是UTF8,并且存储的数据在phpMyAdmin中正确显示.我甚至在php页面中使用了这个META标签,但结果相同:

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

任何的想法?!

php mysql unicode

5
推荐指数
2
解决办法
6400
查看次数

UTF-8法语重音字符问题

当我使用phpmyadmin看到存储在mysql数据库中的数据时,字符的存储方式与éàç一样,但是当我使用php在具有以下结构的html文档上显示这些数据时:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我得到了方形而不是重音字符,但是,我没有在静态内容上的任何重音字符的问题,这些字符尚未从同一页面中的mysql加载.

当我看到页面的源代码时,它们看起来是完全相同的!例如:

源代码上的部分静态数据显示为:

éçà
Run Code Online (Sandbox Code Playgroud)

mysql原始数据的一部分:

éçà
Run Code Online (Sandbox Code Playgroud)

我试过更换

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
Run Code Online (Sandbox Code Playgroud)

结果我得到一个固定的mysql,静态与正方形!

任何提示?

html php mysql character-encoding

5
推荐指数
1
解决办法
2万
查看次数

Rails 迁移突然创建看似随机的具有不同字符集的表

我们使用 Rails(版本 2.3.8,Ruby 版本 1.8.7,如果相关的话)已经有一段时间了,一切似乎都工作正常。我们的 MySQL 版本 5.5.20 DBMS 中的所有表都使用默认的 latin-1 字符集,我认为这很好,因为我们没有国际用户(尽管我们的 database.yml 实际上指定了 utf8...没有人注意到数据库之前实际上并没有这样出来)。

然而我刚刚发现,对于我们最后一个应用程序之一,该特定数据库中的表正在使用 utf8。我们现在正在添加到这个应用程序,并且在我们的开发机器和测试服务器上,新创建的表最终使用的字符集似乎是完全随机的。周五,我部署到我们的测试服务器,当时创建了两个表,其中一个使用 latin-1,另一个使用 utf8。在我的机器上它们都是 utf8。由于我们在这些表之间使用外键,所以这是一个问题。

我发现了大量有关修复字符集问题从一种字符集迁移到另一种字符集等的信息,但没有任何信息可以解释为什么我们会突然遇到这个问题,以及为什么它会来回切换。

两个表的迁移是

create_table :charges, :id => false do |t|
  t.string :id
  t.decimal :amount
  t.decimal :charge
  t.text :description
  t.string :charge_type_ref_id
  t.string :business_id

  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

create_table :charge_type_refs, :id => false do |t|
  t.string :id
  t.string :name
  t.string :code
  t.boolean :active
  t.decimal :fee

  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

我们的database.yml看起来像

development:
adapter: mysql
encoding: utf8
reconnect: false
database: database_development
pool: 5
username: …
Run Code Online (Sandbox Code Playgroud)

mysql ruby-on-rails character-encoding rails-migrations

5
推荐指数
1
解决办法
3389
查看次数

如何将索引的varchar(255)从utf8更改为utf8mb4并仍然保持在767最大密钥长度之下?

我有一个需要支持表情符号的mysql列,这意味着将utf8列转换为utf8mb4.但是我的varchar(255)将不适合,只要列被索引(不唯一).

如何保留索引,并获得utf8mb4校对?

我试图将长度减少到191但不幸的是我的一些行更长并且我得到了这个错误:( #1406 - Data too long for column 'column_name' at row 33565由于我没有自动增量列并且不知道如何罚款,这不是非常有用第33565行).

mysql indexing utf-8 utf8mb4

3
推荐指数
1
解决办法
4117
查看次数

如何使用jpa将utf-8字符正确插入MySQL表

我想通过我的Web应用程序插入MySQL数据库信息.我是在TomEE服务器上通过OpenJPA来做的,例如:

public void addLecturer(String name, String surname) {
    Lecturer lect = new Lecturer(name,surname);

    em.persist(lect);
}
Run Code Online (Sandbox Code Playgroud)

Lecturer是实体类.问题是应用程序以latin1编码插入数据.我想以UTF-8编码插入它.

当我在命令行终端中通过简单的MySQL命令插入数据时,我获得UTF-8编码的信息.

我看了这个,我看到character_set_server被设置为latin1,但我不知道这是问题还是如何改变它:

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Run Code Online (Sandbox Code Playgroud)

编辑

我有同样的问题:

JPA utf-8字符没有保留

UTF - 8与JPA和Glassfish 4.0 …

mysql encoding persistence jpa

0
推荐指数
2
解决办法
8722
查看次数

Database_Exception [2]:mysqli_connect():服务器向客户端发送了未知的字符集(255)。请向开发商报告

安装在本地计算机Docker和Kohana框架上。

我无法建立与数据库的连接。

发生错误:

Database_Exception [ 2 ]: mysqli_connect(): Server sent charset (255) unknown to the client. Please, report to the developers
Run Code Online (Sandbox Code Playgroud)

没事吗 datebase.php

return array
Run Code Online (Sandbox Code Playgroud)

('default'=> array('type'=>'MySQLi','connection'=> array('hostname'=>'mysql','database'=>'media','username'=>'root' ,'password'=>'root','persistent'=> FALSE,),'table_prefix'=>'','charset'=>'utf8mb4','caching'=> FALSE,

如何解决这个问题呢? 在此处输入图片说明

php mysql mysqli kohana

0
推荐指数
1
解决办法
4585
查看次数