【发布时间】:2019-04-18 09:07:09
【问题描述】:
如何访问在远程机器的 Docker 容器上运行的 MySQL 服务器。
这是我的 dockerfile:
MAINTAINER debu_bbsr@yahoo.com
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server \
&& sed -i "s/127.0.0.1/0.0.0.0/g" /etc/mysql/mysql.conf.d/mysqld.cnf \
&& mkdir /var/run/mysqld \
&& chown -R mysql:mysql /var/run/mysqld
VOLUME ["/var/lib/mysql"]
EXPOSE 3306
CMD ["mysqld_safe"]
我创建了一个图像:
sudo docker build -t deb_mysql_image .
使用上图运行 Docker 容器:
sudo docker run -i -t -d -p 3306:3306 --name mysql_deb_container deb_mysql_image
进入MySQL容器:
`k8smaster@k8smaster:~/debashish$ sudo docker exec -it mysql_deb_container mysql`
创建不同的用户和数据库:
mysql> create user debashish identified by 'debashish';
mysql> create user debmysql identified by 'debmysql';
mysql> create database debdb;
mysql> use debdb;
授予用户权限并创建表:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debashish' WITH GRANT OPTION;
CREATE TABLE debtbl1 (name VARCHAR(20), address VARCHAR(50));
填充表格:
insert into debtbl1 values('Debashish', 'Shanghai');
insert into debtbl1 values('Debu', 'Livingston, Shanghai');
现在使用 MySQL 客户端从远程机器访问上述 MySQL 表的内容:
k8snode1@k8snode1:~$ mysql -u 'debashish' -p -h 10.10.10.2 -P 3306 -D debdb
Enter password
“有时”我会遇到这个问题 -
错误 1045 (28000):用户访问被拒绝
为了使它成为一个健壮的系统,我缺少任何东西,所以我不会“有时”遇到上述错误。
【问题讨论】:
标签: mysql docker containers