1.拉取docker
docker pull mysql:5.7
2.配置掛載目錄
sudo mkdir -p /docker_data/mysql/data
sudo mkdir -p /docker_data/mysql/conf
sudo mkdir -p /docker_data/mysql/conf/conf.d
sudo mkdir -p /docker_data/mysql/conf/mysql.conf.d
sudo mkdir -p /docker_data/mysql/logs
3.執行mysql容器
sudo docker run --privileged=true --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql:5.7
sudo docker run:這個命令用於在 Docker 中執行一個容器。
--privileged=true:這個選項指示 Docker 將容器執行在特權模式下,即容器內的程序將擁有主機的特權,這通常用於在容器內部執行一些需要特權的操作。
--restart=always:這個選項指示 Docker 在容器意外停止時自動重啟容器。這樣可以確保 MySQL 服務始終處於執行狀態。
--name mysql5.7:這個選項指定容器的名稱為 mysql5.7,這樣你可以使用這個名稱來引用這個容器。
-p 3306:3306:這個選項將主機的 3306 埠對映到容器內部的 3306 埠,這樣你就可以透過主機的 3306 埠訪問 MySQL 服務。
-e MYSQL_ROOT_PASSWORD=root123456:這個選項設定了 MySQL 的 root 使用者的密碼為 root123456。-e 用於設定環境變數。
-d:這個選項指示 Docker 在後臺執行容器,即以守護程序的方式執行容器
直到這裡就算是docker中的mysql算是安裝好了,只是安裝,還要配置mysql裡的連結的使用者名稱什麼的資料庫什麼的,
4.進入MySQL容器及建立賬號
sudo docker exec -it mysql5.7 bash
執行後,就報一直在重啟,
檢視下日誌 docker logs
sudo docker run --privileged=true --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d -v /docker_data/mysql/data:/var/lib/mysql -v /docker_data/mysql/conf:/etc/mysql -v /docker_data/mysql/logs:/var/log/mysql mysql:5.7
這樣就好了
sudo docker exec -it mysql5.7 bash
mysql -u root -p
mysql> CREATE USER 'unified_model_root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE `unified_model` CHARACTER SET 'utf8mb4';
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON `unified_model`.* TO 'unified_model_root'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)