155 lines
5.2 KiB
Markdown
155 lines
5.2 KiB
Markdown
|
|
---
|
|||
|
|
date created: 2022-01-01 21:22
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# mysql 字段编码的问题
|
|||
|
|
|
|||
|
|
mysql 编码有 数据库编码 表编码 字段编码
|
|||
|
|
|
|||
|
|
[mysql 中查看表、字段的编码格式_what you want!-CSDN博客](https://blog.csdn.net/zf472422160/article/details/84604124)
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 查看表的字段编码
|
|||
|
|
show full columns from dacp_dataex_cdr;
|
|||
|
|
|
|||
|
|
-- 查看表的编码格式:
|
|||
|
|
show create table dacp_dataex_cdr;
|
|||
|
|
|
|||
|
|
|
|||
|
|
-- 修改数据库的编码格式:
|
|||
|
|
|
|||
|
|
mysql>alter database databasename character set utf8
|
|||
|
|
|
|||
|
|
-- 修改表的编码格式 (不会修改列)
|
|||
|
|
|
|||
|
|
mysql>alter table tablename character set utf8
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## alter table t2 default character set utf8mb4; -- (不会修改列)
|
|||
|
|
alter table t2 convert to character set utf8mb4;
|
|||
|
|
-- 修改字段的编码格式 这句会修改所有列
|
|||
|
|
|
|||
|
|
alter table tablename modify fieldname varchar(50) character set utf8
|
|||
|
|
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
原来的表中之前定义的列(字段)的编码类型不会因为表的编码格式而变化,还是latin1(拉丁文格式), 但新建列的类型为是UTF8格式的。由此可见MYSQL中的数据编码格式已经粒子化到 单位“列”。 在建 数据库的时候可以指定数据库编码格式,在这之后所建的表和列的编码格式都会以此格式为默认格式。若之后想改数据库的编码格式的话,想要把之前的表和列的编码格式都改过来的话就要一一改过来了。
|
|||
|
|
|
|||
|
|
**批量改字符 的字段,其他好像没有方便的方法**
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- **把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:**
|
|||
|
|
ALTER TABLE dacp_dataex_cdr CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ALTER TABLE dacp_dataex_cdr CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
[更改表的字符集(utf8 to utf8mb4)_多维217的博客-CSDN博客_修改表的字符集](https://blog.csdn.net/wl21787/article/details/107090351/)
|
|||
|
|
|
|||
|
|
[mysql 字符编码的查看与修改 - tresser - 博客园](https://www.cnblogs.com/tresser/p/9308045.html)
|
|||
|
|
|
|||
|
|
# mysqldump 数据导出详解
|
|||
|
|
|
|||
|
|
[MySQL mysqldump数据导出详解 - pursuer.chen - 博客园](https://www.cnblogs.com/chenmh/p/5300370.html)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
mysqldump \
|
|||
|
|
--host=127.0.0.1 --user=root -p --port=5623 \
|
|||
|
|
--default-character-set=utf8mb4 \
|
|||
|
|
--master-data=2 --single-transaction test t2 >/data/mysql/tmp/t2.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## ignore-table 排除表
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
mysqldump -u root -p DB_NAME --ignore-table=DB_NAME.table1 --ignore-table=DB_NAME.table3 > database.sql
|
|||
|
|
|
|||
|
|
docker run --rm mysql:5.7 mysqldump -h172.22.4.41 -uroot -pqa@123 --ignore-table=ci_jszf_dev.dacp_trace_log --ignore-table=ci_jszf_dev.dacp_trace_log_bak -B ci_jszf_dev > /data01/dataos_mysql_backup/${today}/ci_jszf_dev.sql
|
|||
|
|
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
# 查看mysql数据库容量大小
|
|||
|
|
|
|||
|
|
[查看mysql数据库容量大小 - --smile - 博客园](https://www.cnblogs.com/--smile/p/11451238.html)
|
|||
|
|
|
|||
|
|
## 查看所有数据库各容量大小
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
select
|
|||
|
|
table_schema as '数据库',
|
|||
|
|
sum(table_rows) as '记录数',
|
|||
|
|
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
|
|||
|
|
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
|
|||
|
|
from information_schema.tables
|
|||
|
|
group by table_schema
|
|||
|
|
order by sum(data_length) desc, sum(index_length) desc;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
# Mysql 复制数据库及数据
|
|||
|
|
|
|||
|
|
[Mysql 复制数据库及数据 - ㄓㄤㄑㄧㄤ - 博客园](https://www.cnblogs.com/azhqiang/p/13177683.html)
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
|
|||
|
|
|
|||
|
|
create database ci_jszf_dev_new default character set utf8mb4 collate utf8mb4_general_ci;
|
|||
|
|
|
|||
|
|
create database ci_jszf_dev_new default character set utf8 collate utf8_general_ci;
|
|||
|
|
./mysqldump ci_jszf_dev -uroot -pqa@123 --add-drop-table | ./mysql ci_jszf_dev_new -uroot -pqa@123
|
|||
|
|
|
|||
|
|
mysqldump data -u root -p123456 --add-drop-table | mysql -h 192.168.1.22 newdata -u root -p123456
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
docker exec -it mysql57_185 /bin/bash
|
|||
|
|
|
|||
|
|
mysql -uroot -pCq185@mDxKpa
|
|||
|
|
|
|||
|
|
mysqldump jfzx_manage_dev -u root -pCq185@mDxKpa --add-drop-table | mysql jfzx_manage_0825_back -uroot -pCq185@mDxKpa
|
|||
|
|
mysqldump jfzx_system_dev -u root -pCq185@mDxKpa --add-drop-table | mysql jfzx_system_0825_back -uroot -pCq185@mDxKpa
|
|||
|
|
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
# mysql 数据库 改名
|
|||
|
|
|
|||
|
|
[MySQL数据库改名的三种方法 - yayun - 博客园](https://www.cnblogs.com/gomysql/p/3584881.html)
|
|||
|
|
|
|||
|
|
> shell 脚本改表名
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
docker exec -i mysql57 mysql -uroot -pMy1014@Do -e 'create database if not exists bak_ci_jszf_pro'
|
|||
|
|
list_table=$(docker exec -i mysql57 mysql -uroot -pMy1014@Do -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='ci_jszf_pro'")
|
|||
|
|
|
|||
|
|
for table in $list_table
|
|||
|
|
do
|
|||
|
|
docker exec -i mysql57 mysql -uroot -pMy1014@Do -e "rename table ci_jszf_pro.$table to bak_ci_jszf_pro.$table"
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
|
|||
|
|
create database ci_jszf_dev_new default character set utf8 collate utf8_general_ci;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
[为什么现在MySQL无法重命名数据库? - 知乎](https://www.zhihu.com/question/63551632)
|
|||
|
|
|
|||
|
|
> 数据量小 -- mysqldump
|
|||
|
|
> 数据量大 -- 改表名
|
|||
|
|
|
|||
|
|
实际上 使用数据库复制的方法也可行
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
|
|||
|
|
./mysqldump ci_jszf_dev -uroot -pqa@123 --add-drop-table | ./mysql ci_jszf_dev_new -uroot -pqa@123
|
|||
|
|
|
|||
|
|
docker exec -i mysql57 mysqldump ci_jszf_pro -uroot -pMy1014@Do --add-drop-table | docker exec -i mysql57 mysql bak_ci_jszf_pro -uroot -pMy1014@Do
|
|||
|
|
|
|||
|
|
docker exec -i mysql57 mysqldump ci_jszf_dev -uroot -pMy1014@Do --add-drop-table | docker exec -i mysql57 mysql bak_ci_jszf_dev -uroot -pMy1014@Do
|
|||
|
|
```
|