5.2 KiB
5.2 KiB
date created
| date created |
|---|
| 2022-01-01 21:22 |
mysql 字段编码的问题
mysql 编码有 数据库编码 表编码 字段编码
mysql 中查看表、字段的编码格式_what you want!-CSDN博客
-- 查看表的字段编码
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中的数据编码格式已经粒子化到 单位“列”。 在建 数据库的时候可以指定数据库编码格式,在这之后所建的表和列的编码格式都会以此格式为默认格式。若之后想改数据库的编码格式的话,想要把之前的表和列的编码格式都改过来的话就要一一改过来了。
批量改字符 的字段,其他好像没有方便的方法
-- **把表默认的字符集和所有字符列(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博客_修改表的字符集
mysql 字符编码的查看与修改 - tresser - 博客园
mysqldump 数据导出详解
MySQL mysqldump数据导出详解 - pursuer.chen - 博客园
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 排除表
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 - 博客园
查看所有数据库各容量大小
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 复制数据库及数据
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 数据库 改名
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;
数据量小 -- mysqldump 数据量大 -- 改表名
实际上 使用数据库复制的方法也可行
./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