我在docker容器中使用mysql服务器,可以访问docker内部。如何在本地(主机)上运行的mysql工作台中创建连接。
假设您有docker-compose
文件的下一个内容:
database:image:mysql:5.6卷:-dbdata:/var/lib/mysql环境:-“mysql\u database=homestad”-“mysql\u USER=homestad”-“mysql\u PASSWORD=secret”-“mysql\u ROOT\u PASSWORD=secret”端口:-“33061:3306”
您必须在docker容器中执行一些配置。请按照以下步骤操作。
>
在您的docker-compose.yml.中指定mysql配置块我在docker-compose.yml文件中的服务对象下有以下mysql块。
services:
db:
image: mysql
volumes:
- "./.data/db:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: pass
ports:
42333:3306
重新启动docker容器并运行以下命令以访问mysql容器中的bash shell
docker ps
docker exec -it <mysql container name> /bin/bash
在容器内部,要连接到mysql命令行类型,
mysql -u root -p
使用docker compose中指定的MYSQL\u ROOT\u密码。yml。执行以下命令以创建新用户。
create user 'user'@'%' identified by 'pass';
grant all privileges on *.* to 'user'@'%' with grant option;
flush privileges;
百分号(%)表示所有ip。重新启动docker容器。
在MySQL工作台中,提供连接详细信息。使用docker compose中指定的MYSQL_密码。yml文件。
https://imgs.xnip.cn/cj/n/76/f90e3904-b95d-4e24-9b63-2c444698e046.jpg" width="100%" height="100%" />
您现在应该能够连接到mysql容器。
默认情况下,部署后MySQL具有以下连接限制:
mysql> select host, user from mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec)
显然,出于安全考虑,您将无法在docker映像之外连接到它。如果您需要更改它以允许root从任何主机连接(例如,出于开发目的),请执行:
>
使用所需的所有端口映射启动mysql映像:
docker run-p 3306:3306--name=mysql57-d mysql/mysql-server: 5.7
或者,如果需要完整的端口映射:
docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
如果这是新安装-获取默认密码:
docker记录mysql57 2
使用
mysql
客户端直接连接到docker中的mysqld:
docker exec-it mysql57 mysql-uroot-p
如果这是新的安装,您将被要求使用
ALTER USER
命令更改密码。做吧。
运行SQL:
更新mysql。用户集主机='%'其中用户='根'
退出
mysql
客户端。
重新启动容器:
docker重启mysql57
现在您将能够从MySQL工作台连接到
host: `0.0.0.0`
port: `3306`
所有更改后,查询将显示:
select host, user from mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
我的Windows 8.1中有两个本地服务器,应用程序服务器和wampServer,通常可以通过在浏览器中键入localhost来访问应用程序服务器。wamp 服务器可通过本地主机访问:800 。所以我有两个数据库,一个来自应用服务器,另一个来自 WAMP . 现在我有MySQL工作台,我想连接到wampserver数据库,但当尝试使用主机名:localhost连接时,它只显示了appServer
问题内容: 有人可以给我任何有关如何连接我的mysql db的想法吗,该数据库在Docker上的虚拟机上作为容器运行吗? 我对此一无所知,请帮助我。 我想做的是:-我正在本地计算机上编写一个Java程序,现在我想与mysql建立jdbc连接。我的MySQL数据库在虚拟机上作为docker容器运行。 有人有什么主意吗? 连接con = DriverManager.getConnection(“ jd
我试图在我的项目中使用AWS Aurora Serverless for MySQL,但我无法连接到它,尽管我有endpoint、用户名和密码。 我所做的: 从AWS控制台管理中,选择RDS>实例>Aurora>无服务器 保留默认设置 创建数据库 AWS将只创建AWS集群 我打开MySQL工作台,并使用endpoint、用户名、密码连接数据库 结果: 将用户“admin”从主机连接到xxxx.cl
我成功地用commad创建了docker docker运行--name my-db-d-p 3306:3306-v/e/dockerdata/mysql:/var/lib/mysql-e=“mysql_root_password=null”mysql 只是为了测试我是否必须键入字符串'null'作为密码;)它起作用了。使用 docker exec-it my-db bash 后来呢 MySQL-P
错误代码:2013。查询期间与MySQL服务器的连接中断 我正在使用MySQL工作台。另外,我正在运行一批插入,总共大约1000行(例如,乘以1000次),每批需要相当长的时间,其中一些时间超过600秒。 如何配置workbench,以便在不停止和不丢失连接的情况下继续通宵工作?
我不知道这件事,请帮帮我。 我正在尝试做的是:-我正在我的本地机器上编写一个java程序,现在我想与MySQL建立一个jdbc连接。我的MySQL DB在虚拟机上作为docker容器运行。 有没有人知道。 容器的ip地址是172.17.0.2,来宾ip是10.0.2.15。我的sql正在端口3306上运行。 提前致谢