MySQL修改数据库、表、列、外键字符编码和排序编码
在重启Confluence应用时,突然遇见这个检查错误,查询总结需要修改Mysql数据库的所有字符编码和排序编码,报错如下:
Confluence Help – This installation of Confluence has failed one or more bootstrap configuration checks. Please check the logs for details.
修改数据库、表、列、外键字符编码和排序编码
设置数据库字符编码为utf8,排序编码utf8_bin
SET FOREIGN_KEY_CHECKS=0;
ALTER DATABASE db_name CHARACTER SET utf8 COLLATE utf8_bin;
SET FOREIGN_KEY_CHECKS=1;
设置表字符编码,将查询将生成一条条ALTER TABLE语句,执行所有查询结果
SET FOREIGN_KEY_CHECKS=0;
SELECT CONCAT('ALTER TABLE ', table_name, ' CHARACTER SET utf8 COLLATE utf8_bin;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = 'db_name'
AND
(
C.CHARACTER_SET_NAME != 'utf8'
OR
C.COLLATION_NAME != 'utf8_bin'
);
SET FOREIGN_KEY_CHECKS=1;
设置列字符编码,将查询生成一条条ALTER TABLE语句,执行所有查询结果
SET FOREIGN_KEY_CHECKS=0;
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'yourDB'
AND DATA_TYPE = 'varchar'
AND
(
CHARACTER_SET_NAME != 'utf8'
OR
COLLATION_NAME != 'utf8_bin'
);
SET FOREIGN_KEY_CHECKS=1;
或者
SET FOREIGN_KEY_CHECKS=0;
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, ' CHARACTER SET UTF8 COLLATE utf8_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'yourDB'
AND DATA_TYPE != 'varchar'
AND
(
CHARACTER_SET_NAME != 'utf8'
OR
COLLATION_NAME != 'utf8_bin'
);
SET FOREIGN_KEY_CHECKS=1;
忽略外键约束
可能需要忽略外键约束。可以SET FOREIGN_KEY_CHECKS在更新数据库时使用该命令忽略外键约束。
SET FOREIGN_KEY_CHECKS=0;
--其他查询语句
SET FOREIGN_KEY_CHECKS=1;
备注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/
严正声明:
1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。
2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!
3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。
4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/,谢谢合作。
MySQL修改数据库、表、列、外键字符编码和排序编码的更多相关文章
- MySQL删除所有表的外键约束、禁用外键约束
转: MySQL删除所有表的外键约束.禁用外键约束 2017年10月27日 00:11:34 李阿飞 阅读数:4512 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- (转载)MySQL删除所有表的外键约束、禁用外键约束
其实如果想删除所有表可以直接如下操作: 在navicat中直接选中所有表,然后右键删除表即可,会有提示,一路确定,就会先删掉没有外键的表和字表,只要一路确定,删几批就把表都删完了,并不算太麻烦. 转: ...
- mysql修改数据库表权限
ps:通常我用的是:1.“grant all on *.* to root@'%' identified by 'yourpassword';”——这个还可以顺带设置密码.2.“flush privi ...
- MySQL 关闭子表的外键约束检察
准备: 定义一个教师表.一个学生表:在学生表中引用教师表ID create table teachers(teacherID int not null auto_increment primary k ...
- 清除数据库表、外键、存储过程SQL
1.删除所有外键 ) begin exec(@c1) fetchnextfrom c1 into@c1 endclose c1deallocate c1 2. ...
- MySql图解给表添加外键
关于外键约束的几种方式,请移步鄙人的另外一个博客中的博文 http://blog.csdn.net/hadues/article/details/52558184
- mysql 修改数据库的列
alter table tableName oldcolumn newcolumn datatype;
- mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除
查询指定 数据库 中所有 表 (指定数据库的,所有表) // 可以把 TABLE_NAME 换成 * 号, 查看更丰富的信息 SELECT TABLE_NAME FROM information_sc ...
- [MySQL]表创建外键失败:ERROR 1005 (HY000): Can't create table (errno: 150)
在数据库中建立一个新表(表引擎为InnoDB)时, 需要用到外键, 所以就在建表的时候加了一句foreign key (column) references table_name.但是执行时出现 ER ...
随机推荐
- C++获取网络数据
1. 获取数据 工具libcurl libcurl主要功能就是用不同的协议连接和沟通不同的服务器.libcurl当前支持http, https, ftp, gopher, telnet, dict, ...
- 跟随我在oracle学习php(8)
JavaScript 是一种专为与网页交互而设计的脚本语言, javascript:特效 表单验证原理:什么时候,找到标签,什么时候,操作标签 使用<script>元素的方式有两种:直接在 ...
- 线程基础:多任务处理——MESI协议以及带来的问题:伪共享
1.概述 本文和后续文章将着眼CPU的工作原理阐述伪共享的解决方法和volatile关键字的应用. 2.复习CPU工作原理2.1.CPU工作原理要清楚理解本文后续内容,就需要首先重新概述一下JVM的内 ...
- 用记事本编写helloworld文件但是javac时报错
刚开始编写第一个java文件时遇到的错误: javac HelloWorld.java HelloWorld.java:1: 错误: 写入HelloWorld时出错: HelloWorld.class ...
- 2D过渡模块的其他属性
官网上关于过渡属性的值: 属性 描述 CSS transition 简写属性,用于在一个属性中设置四个过渡属性. 3 transition-property 规定应用过渡的 CSS 属性的名称. 3 ...
- Hadoop学习笔记03_Hive练习
Apache Hive是提供了一种数据映射去读取文本数据,以及提供了类SQL的语句来执行MapReduce. 也就是一种更简化操作的MR. 之前的练习是跟着视频学的hive-1.2.2 而这几天自己练 ...
- MFC VC++ 根据文件名获取程序的Pid
环境:PC Win7 VS VC++ .MFC 使用,输入文件名即可获取程序的pid,进而可以对程序进行操作,比如关闭Porcess等. 头文件: #include <TlHelp32.h> ...
- 获取Ueditor里面的图片列表,地址绝对化
/** * 内容中图片地址转成绝对地址 * @param $content * @return mixed */ private function imgUrl( ...
- 大道至简第一章读后感JAVA伪代码形式
观看了<大道至简>第一章后,从愚公移山的故事中可以发现愚公移山其实可以看作是一个一个项目,下面用JAVA伪代码形式编写: Import java(愚公移山) //愚公移山 public c ...
- 样本失衡会对SVM的影响
假设正类样本远多于负类 1.线性可分的情况 假设真实数据集如下: 由于负类样本量太少,可能会出现下面这种情况 使得分隔超平面偏向负类.严格意义上,这种样本不平衡不是因为样本数量的问题,而是因为边界点发 ...