远程连接docker创建的mysql数据库

3,495 阅读1分钟

通过docker容器启动mysql实例之后,如何远程连接呢?

一、拉取mysql镜像

不加版本号默认拉取最新版本

docker pull mysql

二、启动mysql

1.首先创建本机服务器mysql配置文件,目录可自行选择

touch /usr/local/soft/docker/mysql/conf/my.cnf

2.往my.cnf添加配置内容

[mysqld]
user=mysql
character-set-server=utf8mb4
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4

3.启动mysql容器

 # -p 端口映射 本机端口:容器端口
 # --name:给MySQL容器取的名字
 # -d:表示后台运行
 # -e MYSQL_ROOT_PASSWORD:设置root用户密码
 # -v:表示挂载路径,冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径。
docker run -d -p 3306:3306 --name mysql -v /usr/local/soft/docker/mysql/logs:/var/log/mysql -v /usr/local/soft/docker/mysql/data:/var/lib/mysql -v /usr/local/soft/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/soft/docker/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 mysql

4.查看是否启动成功,如图所示

image.png

三、配置外网访问权限

# 进入mysql容器
docker exec -it mysql bash
# 连接mysql -u后接账户 -p接自定义的密码
mysql -uroot -p123456
# 使用mysql库
use mysql;
alter USER 'root'@'localhost' IDENTIFIED BY '你的密码';
update user set host = "%" where user='root';
# 刷新权限
flush privileges;

四、使用Navicat等工具远程连接即可