今天做主从同步里,执行slave start报了以下错误。
引用
Fatal error: The slave I/O thread stops because master and slave have different values for the COLLATION_SERVER global variable. The values must be equal for the Statement-format replication to work
意思是因为主从之间的COLLATION_SERVER这个全局变量不同,slave停止工作了。
查看MySQL手册,这个变量的控制默认的服务器校对规则。
引用
Use collation_name as the default server collation
在MySQL中字符集与校对规则之间的关系如下:
引用
字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。让我们使用一个假想字符集的例子来区别清楚。
假设我们有一个字母表使用了四个字母:‘A’、‘B’、‘a’、 ‘b’。我们为每个字母赋予一个数值:‘A’=0,‘B’= 1,‘a’= 2,‘b’= 3。字母‘A’是一个符号,数字0是‘A’的编码,这四个字母和它们的编码组合在一起是一个字符集。
假设我们希望比较两个字符串的值:‘A’和‘B’。比较的最简单的方法是查找编码:‘A’ 为0,‘B’为1。因为0 小于1,我们可以说‘A’小于‘B’。我们做的仅仅是在我们的字符集上应用了一个 校对规则。校对规则是一套规则(在这种情况下仅仅是一套规则):“对编码进行比较。”我们称这种全部可能的规则中的最简单的 校对规则为一个binary(二元)校对规则。
这时候只需要修改Server默认的字符集就可以,MySQL会自动设置相对应的校对规则。
set global character_set_server='latin1';
collation_server | latin1_swedish_ci
分享到:
相关推荐
- 按照标准的安装向导进行安装,并配置好MySQL的基本设置,如安装路径、数据存储路径、字符集和端口号。这里推荐使用非默认的端口号以避免冲突。 - 创建MySQL服务,使用`mysqld-nt --install`命令,同时也可以使用...
│ 第九课MySQL字符集.pdf │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优.pdf │ 第二课MySQL入门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用....
MySQL支持多种字符集和排序规则。在配置文件中设置全局字符集和排序规则,例如: ```ini [mysqld] character-set-server=utf8 collation-server=utf8_general_ci ``` 这样设置后,所有新建的数据库默认都将使用`utf8...
- 拷贝配置文件:`cp support-files/***f /etc/***f` 并修改相关参数,如端口号和字符集。 - 添加用户组和用户:`groupadd mysql` 和 `useradd -g mysql mysql` - 更改文件权限和所有者:`chown -R root. /usr/...
- `character-set-server=UTF8`:设置服务器字符集。 - `sql_mode`:设置SQL模式。 2. **从库配置**: - 类似地,你需要在从服务器的`my.ini`文件中启用二进制日志,并设置不同的`server-id`(例如`2`),保持...
- 使用Navicat工具登录MySQL,在两台服务器上分别创建名为`bros`的数据库实例,并设置字符集为utf8,校对规则为utf8_general_ci。 **3. 配置同步用户** - 在主1上为主2建立一个同步用户,例如`replicate`,并授予`...
在MySQL的配置文件***f中,需要添加一些关键配置,如设置默认存储引擎为InnoDB,字符集设置为utf8,以及其他与复制相关的配置。这些配置对数据库性能优化和数据同步有着直接的影响。 配置主从同步是本篇文章的核心...
1. **主从表字符集不同**:主表和从表使用的字符集不一致。 2. **主从表字段长度不同**:主表和从表的某字段长度不一致。 经过检查发现,问题出现在字段长度不同上。解决方案如下: 1. **停止复制**: ```sql ...
调整生产线中MySQL数据库的字符集: 可通过ALTER DATABASE或ALTER TABLE命令调整字符集,例如:ALTER DATABASE `database_name` CHARACTER SET utf8 COLLATE utf8_general_ci;。 批量修改数据表引擎: 可以通过查询...
配置文件my.cnf用于设定MySQL的启动参数,包括数据目录、字符集、用户权限等。安装完成后,确保MySQL能够随系统启动,并设置相应的权限和软链接以便于使用。 接下来是数据初始化和启动MySQL服务,这一步会创建root...
- **character_set_server=utf8**:服务器默认字符集。 - **log_slave_updates=1**:复制日志中记录更新操作。 - **gtid_mode=ON**:启用全局事务ID,用于复制场景。 - **innodb_flush_log_at_trx_commit=2**:控制...
MySQL 数据库故障排除的常见方法和解决方案,涵盖了慢查询日志分析、查询数据库总大小、主从复制、查询 MySQL 进程、查看 MySQL 锁或者死锁、Out of memory 错误、字符集创建数据库、权限控制、备份 MySQL 数据库、...
例如,`-DCMAKE_INSTALL_PREFIX=/usr/local/mysql`设置安装目录,`-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock`设置套接字路径,`-DDEFAULT_CHARSET=utf8`设置字符集为UTF-8,`-DDEFAULT_COLLATION=utf8_general...
5. **配置 MySQL**:编写 `my.cnf` 配置文件,包含 `mysqld_safe` 和 `mysqld` 部分,设置日志、数据目录、用户、字符集、存储引擎、缓冲池大小等参数。特别地,为了实现复制,需要设置 `server_id`、`log-bin`、`...
安装完成后,创建两个名为`cool`和`cool2`的数据库,都采用utf8字符集和utf8_general_ci校对规则。 接下来,我们配置主数据库(master)。在 `/etc/mysql/mysql.conf.d/mysqld.cnf` 文件中,设置`server-id`为1以...
MySQL 中可以使用主从复制(Master-Slave Replication)、负载均衡(Load Balancing)、分布式事务(Distributed Transaction)等方法来实现高可用和容灾设计。 MySQL 中如何进行数据迁移和同步? MySQL 中可以...
[mysql]部分通常用于设置MySQL命令行客户端的默认选项,这里配置了客户端使用的字符集。 [mysqld]部分是最重要的,它包含了MySQL服务器的配置选项。这里列出了部分关键配置及其意义: - port=3306:设置MySQL服务...
/usr/local/percona/bin/mysql -u root -p mysql -e "reset master;" ``` #### 二、MySQL 主从复制配置 - **授予从服务器权限**:为从服务器创建用户,并授予其复制权限。 ```sh GRANT REPLICATION SLAVE ON *....
3. **配置MySQL**:修改MySQL的配置文件`my.cnf`,设置`basedir`、`datadir`、`port`、字符集、存储引擎等参数。对于主库,开启二进制日志功能(`log-bin`)、设置`binlog_format`为`ROW`模式,以及启用`log-slave-...