普通安裝
1、下載mysql最新版本
docker pull mysql
2马僻、創(chuàng)建mysql實例并啟動
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
參數說明
- -p 3306:3306:將容器的3306端口映射到主機的3306端口
- -e MYSQL ROOT_PASSWORD=123456:初始化mysql root用戶密碼
3、查看是否運行
docker ps
4雳锋、Navicat連接報錯(mysql8.0以上)
解決辦法
進入docker容器 :docker exec -it mysql bash
- mysql可以是實例名也可以是docker下mysql的ID
登陸數據庫 : mysql -uroot -p
輸入密碼:123456
-
123456是上面為mysql設置的密碼
image.png
修改數據庫
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
重新修改密碼后可連接成功
mysql> alter user 'root'@'%' identified by '123456';
刷新數據庫 mysql> flush privileges;
重新外網登陸ok
掛載數據卷以及配置文件
數據和日志放在指定的文件夾/mydata/mysql/conf和/mydata/mysql/data
- docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="root" mysql
- docker exec -it mysql bash
- mkdir -p /mydata/mysql/conf && mkdir -p /mydata/mysql/data
docker cp mysql:/etc/mysql/my.cnf /mydata/mysql/conf
image.png- docker stop mysql
- docker rm mysql
- docker run --name mysql
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=root
--mount type=bind,src=/mydata/mysql/conf/my.cnf,dst=/etc/mysql/my.cnf
--mount type=bind,src=/mydata/mysql/data,dst=/var/lib/mysql
--restart=on-failure:3
-d mysql
--name:為容器指定一個名字
-p:指定端口映射穷劈,格式為:主機(宿主)端口:容器端口
-e:username="xxx",設置環(huán)境變量
--restart=on-failure:3:是指容器在未來出現(xiàn)異常退出(退出碼非0)的情況下循環(huán)重啟3次
-mount:綁定掛載
-d:后臺運行容器仑最,并返回容器 id
修改編碼字符集
進入mysql :docker exec -it mysql bash
登陸數據庫 : mysql -uroot -p
輸入密碼:123456
查看當前編碼字符集:show variables like '%char%';
exit退出
進入剛剛創(chuàng)建的conf目錄
cd /mydata/mysql/conf
vi my.cnf
插入
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
重啟
docker restart mysql