Docker下安裝mysql
命令
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /data/mysql/data:/docker/container/data -v /data/mysql/conf:/etc/mysql/conf.d -d mysql:5.7
注意事項:
-v /data/mysql/conf:/etc/mysql/conf.d 該引數是關鍵,它決定了my.cnf位置
例如該命令中
-v /data/mysql/data:/docker/mysql/data 該引數如此設定是因為my.cnf下有如下配置
datadir=/docker/mysql/data
由此可以看出my.cnf配置的所有路徑相關類引數的路徑都是指的容器內路徑,如果希望通過外部訪問 就需要再docker run是用 -v 對映後後訪問
例如如果你想直接通過宿主主機訪問mysql的錯誤日誌,那就需要做兩件事:
1、my.cnfq內配置log-error=/docker/mysql/logs/mysqld.log
2、執行命令
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /data/mysql/data:/docker/container/data -v /data/mysql/conf:/etc/mysql/conf.d -v /data/logs/mysql:/docker/mysql/logs -d mysql:5.7
完成以上步驟後 如果希望在宿主機像訪問一般部署方式的訪問MySQL可以通過以下執行以下命令實現
alias mysql="docker exec -it mysql mysql"
之後就可在宿主機使用
mysql -uroot -p 來登入Mysql了