docker之MySQL


准备:部署好docker环境    镜像docker.io-mysql-mysql-server.tar 上传至/root

[root@node1 ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@node1 ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@node1 ~]# 

导入镜像到docker

[root@node1 ~]# docker load -i docker.io-mysql-mysql-server.tar 
0302be4b1718: Loading layer  124.3MB/124.3MB
f9deff9cb67e: Loading layer  128.7MB/128.7MB
c4c921f94c30: Loading layer  9.216kB/9.216kB
0c39b2c234c8: Loading layer  3.072kB/3.072kB
Loaded image: mysql/mysql-server:latest

查看

[root@node1 ~]# docker images
REPOSITORY           TAG       IMAGE ID       CREATED       SIZE
mysql/mysql-server   latest    a3ee341faefb   4 years ago   246MB

运行

[root@node1 ~]# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d  mysql/mysql-server
06424190aebe9e3e37af7deb7f3a83cada047a6a651cbe09f1a9c588740258da

Navicat 连接测试

 进入容器

[root@node1 ~]# docker exec -it 064  bash
bash-4.2# mysql -uroot -p
Enter password: 

添加roo t账户远程登录

mysql>  use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
4 rows in set (0.00 sec)

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | healthchecker |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+
4 rows in set (0.00 sec)

再次测试

 禁止root 账户远程登录

mysql> update user set host = "localhost" where user = "root" and host = "%";
mysql> flush privileges;

创建用户

mysql> create user test identified by '123456';
mysql> grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;
mysql> flush privileges ;
mysql> use mysql;
mysql> select host,user from user;
mysql> select host,user from user; +-----------+---------------+ | host | user | +-----------+---------------+ | % | test | | localhost | healthchecker | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+ 5 rows in set (0.00 sec)

修改指定用户密码

mysql> update mysql.user set password=password('新密码') where User="test" ;

删除用户

mysql> delete from user where User='test';

提交镜像

[root@node1 ~]# docker commit 06424190aebe mysql
sha256:b78e5161c206cf6612053f73eaa6249963cfe75e701fc5c59e5c1e7f6140b202

保存镜像

[root@node1 ~]# docker save mysql:latest -o ./mysql.tar