1、確保linux系統里已有docker
2、下載安裝包
docker pull mysql:5.7
3、創建容器
docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
參數說明:
- run run 是運行一個容器
- -d 表示后台運行
- -p 表示容器內部端口和服務器端口映射關聯
- --privileged=true 設值MySQL 的root用戶權限, 否則外部不能使用root用戶登陸
- -v /docker/mysql/conf/my.cnf:/etc/my.cnf 將服務器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
- -v /docker/mysql/data:/var/lib/mysql 同上,映射數據庫的數據目錄, 避免以后docker刪除重新運行MySQL容器時數據丟失
- -e MYSQL_ROOT_PASSWORD=123456 設置MySQL數據庫root用戶的密碼
- --name mysql 設值容器名稱為mysql
- mysql:5.7 表示從docker鏡像mysql:5.7中啟動一個容器
- --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 設值數據庫默認編碼
4、如果是雲服務器,請確保對外端口已開啟
5、配置mysql用戶,此處的mysql是我們創建的容器名稱
docker exec -it mysql bash
6、執行mysql命令,連接mysql,回車輸入密碼 剛剛創建容器時默認密碼給了 123456
mysql -u root -p
7、配置新的mysql用戶並賦權限 【%代表可遠程訪問 localhost 表示只能本地登陸】
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test123' WITH GRANT OPTION;
8、修改mysql用戶的密碼
set password for root@localhost = password('新密碼')