Docker MySQL 数据库配置

# Docker MySQL 数据库配置

当我们使用 Docker 搭建 MySQL 的时候, 我们可能有很多的想法, 比如, 这个不会和宿主机的环境起冲突, 且搭建起来比较简单, 尤其是对于临时使用的人, Docker 的便利点尤为突出. 本文主要想解决的是两个问题, 一个是数据库字符设置的问题, 一个是脚本导入的问题.

docker 建立本地数据库

docker run -itd --name mysql-test -p 23306:3306 -v {本地绝对路径}:{远程绝对路径}  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.32

数据库字符设置的问题

这个问题主要是因为 Docker 的 MySQL 数据库默认的字符设置的是 瑞典的拉丁文, 并不是 utf-8 因此造成中文显示会无法显示, 这也是其中一个很大的问题.

解决办法

  1. 修改 docker 容器的设置 重启mysql 服务(或者重启 docker 服务亦可以) 修改设置如下:
    在 /etc/mysql/my.cnf 中添加如下的配置信息, 如果存在相应的配置信息,则直接修改即可
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
character-set-server = utf8
collation-server = utf8_unicode_ci

[client]
default-character-set = utf8

重启 MySQL 或者重启 docker 容器即可显示中文信息 那如何检测呢?

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+

显示上述信息即可完成本地中文化的配置
.

第二个挂在本地目录

这个和其他的 docker 配置一样 很简单 只需要在 docker 命令行中添加 -v {本地绝对路径}:{远程绝对路径} 即可

多文件SQL导入

在 bash 中执行如下操作

for SQL in *.sql; do mysql -uroot -p"123456" {databasename} < $SQL ; done -default-character-set = utf8

tips:
查询 数据库中的两个数据表是否有不同数据

SELECT DISTINCT a.id FROM a WHERE a.id NOT in(SELECT id FROM b)

msyql 导入 csv 命令

mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local -u root query ./address.csv

参考文档

  1. https://www.awaimai.com/2382.html
  2. https://blog.csdn.net/weixin_44096448/article/details/102485592
  3. https://www.tutorialspoint.com/How-can-we-import-CSV-files-into-MySQL-tables-by-using-mysqlimport
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇