通过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.查看是否启动成功,如图所示
三、配置外网访问权限
# 进入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;