這篇文章主要介紹了ubuntu下在docker中dockerdocker5.6 的方法,需要的朋友可以參考下
1.安裝mysql5.6
docker?run?mysql:5.6
等所有項目都是Download complet 安裝完畢
5.6:?Pulling?from?library/mysql 10a267c67f42:?Pull?complete? c2dcc7bb2a88:?Pull?complete? 17e7a0445698:?Pull?complete? 9a61839a176f:?Pull?complete? d4657fda01d9:?Pull?complete? c5278a445e5d:?Pull?complete? 197c0b76f238:?Pull?complete? f54c5432bac4:?Pull?complete? c26b15abee8a:?Pull?complete? 80dbe6022c18:?Pull?complete? 435678c09612:?Pull?complete? Digest:?sha256:84372107beb1de34bd4673049ea61bc35f374a2b4f19fd5a3abd4d0a2a50b715 Status:?Downloaded?newer?image?for?mysql:5.6 error:?database?is?uninitialized?and?password?option?is?not?specified? ?You?need?to?specify?one?of?MYSQL_ROOT_PASSWORD,?MYSQL_ALLOW_EMPTY_PASSWORD?and?MYSQL_RANDOM_ROOT_PASSWORD
2.使用本地賬號創建一個文件夾用來映射docker中mysql的docker
其中繼續創建conf、data、logs 3個文件夾
我的配置如下
val@val-linux:~/docker/mysql1$?pwd /home/val/docker/mysql1 val@val-linux:~/docker/mysql1$?ls conf?data?logs
3.創建mysql容器
切換到root賬號進入到剛才創建的mysql1文件夾中
root@val-linux:/home/val#?cd?/home/val/docker/mysql1/ root@val-linux:/home/val/docker/mysql1#
創建并啟動容器
docker?run?-p?33061:3306?--name?mysql1?-v?$PWD/conf:/etc/mysql?-v?$PWD/logs:/logs?-v?$PWD/data:/mysql_data?-e?MYSQL_ROOT_PASSWORD=123456?-d?mysql:5.61 用本地33061端口映射docker的3306端口? 給容器命名mysql1? 用本地/home/val/docker/mysql1/conf映射mysql的conf? 用本地/home/val/docker/mysql1/logs映射mysql的logs? 用本地/home/val/docker/mysql1/data映射mysql的mysql_data
給root設置密碼123456
4.啟動mysql容器
docker?start?mysql11
5.進入mysql的bash
docker?exec?-it?mysql1?env?LANG=C.UTF-8?bash
其中 env LANG=C.UTF-8 bash 讓docker命令行支持中文
6.復制配置文件
cp?/usr/my.cnf?/etc/mysql/my.cnf
7.登錄mysql
mysql?-u?root?-p
輸入密碼進入
8.查看mysql編碼
mysql>?show?variables?like?'%character%'; +--------------------------+----------------------------+ |?Variable_name??????|?Value???????????| +--------------------------+----------------------------+ |?character_set_client???|?latin1???????????| |?character_set_connection?|?latin1???????????| |?character_set_database??|?latin1???????????| |?character_set_filesystem?|?binary???????????| |?character_set_results??|?latin1???????????| |?character_set_server???|?latin1???????????| |?character_set_system???|?utf8????????????| |?character_sets_dir????|?/usr/share/mysql/charsets/?| +--------------------------+----------------------------+ 8?rows?in?set?(0.01?sec)
發現不是utf-8編碼
9.修改mysql編碼
dockermysql,退出docker
mysql>?exit Bye root@8b83a30acbf8:/#?exit exit root@val-linux:/home/val/docker/mysql1#
修改my.cnf配置文件
root@val-linux:/home/val/docker/mysql1#?vim?conf/my.cnf
按i進入docker
加入
[client]?default-character-set=utf8? [mysql]?default-character-set=utf8? [mysqld]?character-set-server=utf8?1 esc?:wq!?保存退出
10.重啟docker的mysql再次查看編碼
root@val-linux:/home/val/docker/mysql1#?docker?stop?mysql1 mysql1 root@val-linux:/home/val/docker/mysql1#?docker?start?mysql1 mysql1 root@val-linux:/home/val/docker/mysql1#?docker?exec?-it?mysql1?env?LANG=C.UTF-8?bash root@8b83a30acbf8:/#?mysql?-u?root?-p Enter?password:? Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?g. Your?MySQL?connection?id?is?1 Server?version:?5.6.36?MySQL?Community?Server?(GPL) Copyright?(c)?2000,?2017,?Oracle?and/or?its?affiliates.?All?rights?reserved. Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its affiliates.?Other?names?may?be?trademarks?of?their?respective owners. Type?'help;'?or?'h'?for?help.?Type?'c'?to?clear?the?current?input?statement. mysql>?show?variables?like?'%character%'; +--------------------------+----------------------------+ |?Variable_name??????|?Value???????????| +--------------------------+----------------------------+ |?character_set_client???|?utf8????????????| |?character_set_connection?|?utf8????????????| |?character_set_database??|?latin1???????????| |?character_set_filesystem?|?binary???????????| |?character_set_results??|?utf8????????????| |?character_set_server???|?latin1???????????| |?character_set_system???|?utf8????????????| |?character_sets_dir????|?/usr/share/mysql/charsets/?| +--------------------------+----------------------------+ 8?rows?in?set?(0.00?sec)
11.docker
mysql>?create?database?rise; Query?OK,?1?row?affected?(0.00?sec)? mysql>?use?rise; Database?changed
12.創建用戶并授權
mysql>?grant?all?privileges?on?rise.*?to?val@'%'?identified?by?'123456'; Query?OK,?0?rows?affected?(0.00?sec) mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.00?sec)
%表示任意IP(可以指定IP)、val是用戶名、123456是密碼
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END