今天有同学在搭建主从环境的时候发现一个问题,简单说明一下。感谢 @年代80s.
现象:
从库上Slave_IO_Running停止,Last_Error显示如下:
bin/mysqlbinlog: Character set ‘#45′ is not a compiled character set and is not specified in the ‘/u01/dingqi.lxb/transfer2/master/share/mysql/charsets/Index.xml’ file
分析:
此时用mysqlbinlog 执行对应的relaylog文件,也会出现上面这个错误提示。
查看这个提示位置的Index.xml,这里记录了这个server提供的所有字符集。我们发现,其实没有id为45的字符集。
也就是这个原因,导致slave在同步时,解析出错,导致同步停止。
SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=33
从这个命令中看,是有用户连接进master以后,执行了一个set names xxx (xxx是某个字符集名字),而这个xxx被翻译成45.
复现:
我们要找出编号45的字符集。在5.5上执行如下命令:
发现原来是这个叫做utf8mb4的字符集,这个字符集在5.1里面是还没有的。
解决:
给我们的提示就是在高版本对低版本的主从中,要注意不要用到低版本不支持的字符集(所以官方并不建议高版本的master同步到低版本的slave)。
对于已经在Master的里面已经存在的binlog,要让主从能够继续同步,只能在slave_skip_errors里加上 22这个错误号.
分享到:
相关推荐
根据提供的文件信息,本文将详细解释Windows环境下MySQL主从备份及主从切换的过程与关键配置。主要内容包括: 1. **主从备份的步骤详解** 2. **主从切换的步骤详解** 3. **多实例环境下的MySQL配置示例** ### 一、...
default-character-set=utf8 log-bin=mysql-bin relay-log=relay-bin relay-log-index=relay-bin-index server-id=1 master-host=10.240.136.149 master-user=tongbu master-password=123456 master-port=...
character-set-server=utf8 collation-server=utf8_general_ci ``` 这样设置后,所有新建的数据库默认都将使用`utf8`字符集和`utf8_general_ci`排序规则。 以上就是MySQL 5.6在Linux环境下安装及主从配置的详细步骤...
default-character-set=utf8 master-host=master_ip master-user=root master-password=password master-port=3306 master-connect-retry=60 replicate-do-db=database_name ``` - 在`[mysqld]`下添加: `...
- `character-set-server=UTF8`:设置服务器字符集。 - `sql_mode`:设置SQL模式。 2. **从库配置**: - 类似地,你需要在从服务器的`my.ini`文件中启用二进制日志,并设置不同的`server-id`(例如`2`),保持...
default-character-set=utf8 [mysqld] bind-address = 192.168.0.149 validate_password = off character_set_server=utf8 启动 Mysql 使用 systemctl start mysqld 命令启动 Mysql,并使用 systemctl status ...
character-set-server = utf8 [mysql] default-character-set = utf8 ``` 配置主服务器 在主服务器上,需要配置 MySQL 使其能够进行二进制日志记录: ``` [mysqld] log-bin=mysql-bin server-id=144 ``` 这里,...
character-set-server=utf8 ``` 然后重启主库服务。 3. **备份主数据库数据**:根据实际情况,可以选择不同的备份方式。如果是新安装的数据库,可以直接查看当前的二进制日志坐标。如果主库是在线生产库,应使用`...
### 错误1:`mysqlbinlog: [ERROR] unknown variable ‘default-character-set=utf8mb4’` 当在`my.cnf`配置文件中设置`default-character-set=utf8mb4`后,尝试使用`mysqlbinlog`工具查看binlog时,会遇到此错误。...
character-set-server=utf8mb4 collation-server=utf8mb4_general_ci [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 ``` 5. **创建必要文件和权限设置** 创建MySQL所需...
主从库的版本差异并不影响配置,但通常建议主库版本较低以避免因语法差异导致的问题。 **第一步:数据库安装** MySQL的安装在这里是解压缩版,只需将下载的zip包解压到相应目录。对于主库和从库,都需要创建`my.ini...
default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=”D:\mysql\mysql-5.7.27-winx64″ # 设置mysql数据库的数据的存放目录 datadir=”D:\mysql\mysql-5.7.27-winx64\...
- **红色字体表示同步错误指示**:在MySQL主从同步配置过程中,如果出现任何问题或错误,通常会以红色字体的形式显示出来,便于管理员快速识别和定位问题。 - **如果有问题会有错误提示**:例如,“1 **************...
character-set-server=utf8 ``` - **安装与启动服务**:通过`mysqld-install`命令安装MySQL服务,再用`net start mysql`启动服务。 ##### 3. 用户权限设置 - **授权用户**:为了实现主从复制,需要在主服务器上...
- **创建数据库**:使用`CREATE DATABASE database_name CHARACTER SET gbk;`命令创建指定字符集的数据库。 - **创建用户并授权**:例如`CREATE USER 'oldboy'@'localhost'; GRANT ALL PRIVILEGES ON oldboy.* TO '...
/usr/bin/mysqldump -h192.168.1.112 -uhaodingdan -p123456 --skip-opt --flush-logs --default-character-set=utf8 bbs > backup/`date +%Y%m%d`/bbs_20230301.sql ``` ### 数据库迁移与恢复 当进行数据库迁移时...
mysql主从复制(replication同步)现在企业用的比较多,也很成熟.它有以下优点: 1.降低主服务器压力,可在从库上执行查询工作. 2.在从库上进行备份,避免影响主服务器服务. 3.当主库出现问题时,可以切换到从库上. 不过,用...
MySQL的主从复制是数据库高可用性和负载均衡的一种...然而,需要注意的是,主从复制并不保证100%的数据一致性,因为网络延迟或服务器故障可能导致数据丢失或不一致。因此,定期的数据完整性检查和监控是必不可少的。
在MySQL中,不同的变量如`character_set_client`、`character_set_connection`和`character_set_results`分别控制数据的输入、处理和输出编码。为了确保数据正确显示,需要确保这些变量与客户端和数据库的编码一致。...