1

Docker MySQL 数据库配置

 3 years ago
source link: https://tcpgnl.com/docker-mysql-setting.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Docker MySQL 数据库配置

2021年7月21日 177点热度 0人点赞 0条评论

# 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
本作品采用 知识共享署名 4.0 国际许可协议 进行许可

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK