zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【Mysql】character-set-server参数

mysqlserverset 参数 character
2023-09-14 08:57:29 时间
对于数据库级的字符集,如果没有办法重建数据库,可以在my.cnf文件中使用character-set-server = utf8(要重启数据库服务),对于之前已经存在数据库,此参数不产生影响。如果之前的数据库A是latin1,在A中创建的表默认还是latin1,除非指定DEFAULT CHARSET!然而对于新建的数据库,则继承 my.cnf文件中使用character-set-server = utf8! [root@rac3 ~]# more /etc/my.cnf  [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 character-set-server = utf8  关闭数据库服务,并重新启动! [root@rac3 ~]# mysqladmin shutdown [root@rac3 ~]# mysqld_safe [1] 15102 [root@rac3 ~]# Starting mysqld daemon with databases from /var/lib/mysql [root@rac3 ~]# mysql Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type help; or \h for help. Type \c to clear the buffer. mysql show variables like %server%; +----------------------+-----------------+ | Variable_name        | Value           | +----------------------+-----------------+ | character_set_server | utf8            |  | collation_server     | utf8_general_ci |  | server_id            | 0               |  +----------------------+-----------------+ 3 rows in set (0.00 sec) --重新建立数据库,查看其默认字符集:为utf8 mysql create database yql; Query OK, 1 row affected (0.00 sec) mysql use yql; Database changed 新建表的默认字符集和数据库的默认字符集一致! mysql create table t(id int); Query OK, 0 rows affected (0.00 sec) mysql show create table t; +-------+-------------------------------------------------------------------------------------+ | Table | Create Table                                                                        | +-------+-------------------------------------------------------------------------------------+ | t     | CREATE TABLE `t` (   `id` int(11) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 |  +-------+-------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql show create database yql \G;   *************************** 1. row ***************************        Database: yql Create Database: CREATE DATABASE `yql` /*!40100 DEFAULT CHARACTER SET utf8 */ 1 row in set (0.00 sec) ERROR:  No query specified
MySQL连接数据库url的参数characterEncoding=UTF-8 最近遇到数据库变更后,向数据库添加记录,中文读取或存入时变为???。本地MySQL数据库的字符集设置的是utf-8,IDE中项目的字符集也是utf-8,所以在切换数据库之前未发现问题。遇到这个问题后排查了一段时间,最后是在MySQL连接数据库url的参数中加了characterEncoding=UTF-8解决了问题。
MySQL binlog_ignore_db 参数最全解析 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、show等)。注意默认情况下会记录所有库的操作,那么如果我们有另类需求,比如说只让某个库记录 binglog 或排除某个库记录 binlog ,是否支持此类需求呢?本篇文章我们一起来看下。