一. 使用docker拉取mysql镜像

root@VM-0-16-ubuntu:/home# docker pull mysql:8.4.4
8.4.4: Pulling from library/mysql
Digest: sha256:23818b7d7de427096ab1427b2e3d9d5e14a5b933f9a4431a482d6414bc879091
Status: Image is up to date for mysql:8.4.4
docker.io/library/mysql:8.4.4
root@VM-0-16-ubuntu:/home# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    1b44b5a3e06a   2 months ago   10.1kB
mysql         8.4.4     4a8a163431d3   9 months ago   769MB


## 在home创建mysql8目录
root@VM-0-16-ubuntu:/home# mkdir mysql8
root@VM-0-16-ubuntu:/home# cd mysql8/
root@VM-0-16-ubuntu:/home/mysql8# ls

### 创建一系列mysql 要使用到的目录
root@VM-0-16-ubuntu:/home/mysql8# mkdir conf
root@VM-0-16-ubuntu:/home/mysql8# mkdir data  
root@VM-0-16-ubuntu:/home/mysql8# mkdir log
root@VM-0-16-ubuntu:/home/mysql8# mkdir mysql-files

root@VM-0-16-ubuntu:/home/mysql8# ls
conf  data  log  mysql-files

二.使用docker来运行MySQL

### 使用docker来运行MySQL
#                                                 设置mysql的端口号和名称
root@VM-0-16-ubuntu:/home/mysql8/conf# docker run -p 3306:3306 --name mysql8-imooc \
# 设置mysql的目录挂载
-v /home/mysql8/log:/var/log/mysql \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/conf:/etc/mysql/conf.d \
-v /home/mysql8/mysql-files:/var/lib/mysql-files \
# 设置mysql的登录密码
-e MYSQL_ROOT_PASSWORD=Abc_123456789 \
# 设置mysql在后台运行
-d mysql:8.4.4 \
# 绑定所有ip
--bind-address=0.0.0.0 \
# 设置mysql的字符集
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci


### 查看docker中运行的进程
root@VM-0-16-ubuntu:/home/mysql8/conf# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                                    NAMES
14ba5e4e7da7   mysql:8.4.4   "docker-entrypoint.s…"   26 seconds ago   Up 25 seconds   0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp   mysql8-imooc

参数说明:

  • -p 3306:3306:映射宿主机与容器的端口。

  • -v:挂载日志、数据和配置文件目录。

  • -e MYSQL_ROOT_PASSWORD=123456:设置 root 用户密码。

三.启动完成之后一定要记得在云服务器中开启3306端口

注意啦: 端口号3306一定不要写错了,不要写错成3360了!!

四. 进入docker容器中创建远程访问用户

1.进入进入MySQL容器

# 进入MySQL
root@VM-0-16-ubuntu:/home# docker exec -it mysql8-imooc mysql -uroot -p
2.在MySQL中执行以下命令:
# 创建远程访问用户(替换'your_password'为实际密码)
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

3.完整的操作演示如下:

# 进入MySQL
root@VM-0-16-ubuntu:/home# docker exec -it mysql8-imooc mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.4 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 在MySQL中执行以下命令:
# 创建远程访问用户(替换'Abc_123456789'为你自己的实际密码)
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'Abc_123456789';
 GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> EXIT;
Bye

五.在Windows本地使用idea连接云服务器中的mysql

更多推荐