安裝Docker
下載mysql鏡像
官網(wǎng)鏡像 docker pull mysql:5.7, 這個速度很慢 ,如果想用官方鏡像
Docker鏡像加速器配置教程
使用網(wǎng)易云國內(nèi)鏡像,下載速度快
docker pull 如不指定url默認從官網(wǎng)安裝
$docker pull hub.c.163.com/library/mysql:5.7
啟動容器
# 創(chuàng)建logs文件夾
mkdir logs
# 創(chuàng)建data文件夾
mkdir data
mkdir -p ~/mysql/data ~/mysql/logs
docker run -p 3306:3306 --name mymysql -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=a123456 -d mysql:5.7
--name 給容器命名為mymysql
-v $PWD/conf:/etc/mysql/:將主機當(dāng)前目錄下的 conf/掛載到容器的 /etc/mysql/。
-v $PWD/logs:/logs:將主機當(dāng)前目錄下的 logs 目錄掛載到容器的 /logs智嚷。
-p 3306:3306:將容器(冒號右邊)的 3306 端口映射到主機(冒號左邊)的 3306 端口琼稻。
-v $PWD/data:/var/lib/mysql :將主機當(dāng)前目錄下的data目錄掛載到容器的 /var/lib/mysql 强法。
-e MYSQL_ROOT_PASSWORD=a123456:初始化 root 用戶的密碼。
-d 使容器在后臺啟動
mysql:5.7 下載鏡像名稱與版本, 也可以寫mysql鏡像ID ,imageID价脾。
查看容器啟動情況
$docker ps
進入容器配置mysql外網(wǎng)登錄 (博文更新:2020年08自測 默認開啟外網(wǎng)訪問 不需要再配置)
這時使用連接工具 如果提示ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server。
說明沒有打開遠程訪問.
就需要進入mysql的容器中進行設(shè)置了。
docker exec -it mymysql bash
docker exec 進入容器
-t 讓docker分配一個偽終端弧蝇,并綁定到容器的標準輸入上;
-i 讓容器的標準輸入保持打開折砸;
mymysql 是容器的名字看疗。
登陸mysql:
mysql -u root -p
開啟遠程連接
use mysql;
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
root 用戶名
% 所有ip都可以訪問
password 是密碼
執(zhí)行完畢后,再通過工具去連接睦授,就可以連上了两芳。
Linux打開mysql 3306端口
如提示連接失敗, 則查看系統(tǒng)防火墻是否打開3306端口
ubuntu使用如下命令啟動ufw:
$ sudo ufw default deny
$ sudo ufw enable
打開3306端口
$ sudo ufw allow 3306
查看
$ sudo ufw status
首次連接很慢的問題解決
刪除域名解析
當(dāng)新的客戶連接mysqld時,mysqld創(chuàng)建一個新的線程來處理請求去枷。該線程先檢查是否主機名在主機名緩存中怖辆。如果不在,線程試圖解析主機名删顶。
進入容器
docker exec -it mymysql bash
安裝vim
敲vim命令時提示說:vim: command not found竖螃,這個時候就需要安裝vim,
可是當(dāng)你敲apt-get install vim命令時翼闹,提示:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vim
1)這時候需要敲:apt-get update斑鼻,這個命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟件包猎荠。
2)等更新完畢以后再敲命令:apt-get install vim命令即可坚弱。
如果是:bash:ping: command not found
apt-get install iputils-ping
修改配置
vim /etc/mysql/my.cnf
插入兩行
[mysqld]
skip-name-resolve
退出重啟mysql服務(wù)