1.安装
1.1 拉取镜像
docker pull mysql
拉取成功可以验证一下
docker images
1.2 创建并启动一个mysql容器
docker run --name self-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
- –name:给新创建的容器命名,此处命名为self-mysql
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射主机3306端口到容器pwc-mysql的3306端口
- -d:成功启动容器后输出容器的完整ID.
- 最后一个mysql指的是mysql镜像名字
到这里我们查看容器运行状态:
$ sudo docker ps
可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等。
配置远程连接:
方式一:
docker exec self-mysql mysql -u root -p123456 -e "use mysql; ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';FLUSH PRIVILEGES;"
方式二:
1、进入mysql容器
docker exec -it self-mysql bash
2、连接mysql
mysql -uroot -p
3.支持远程连接
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> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
连接注意:
用容器所在的主机ip地址和映射出的端口号进行连接。
查看mysql容器的ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>
直接通过脚本创建:
rm -rf /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf
mkdir -p /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf
cat>/usr/data/mysql/my.cnf<<EOF
[mysqld]
user=mysql
character-set-server=utf8
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=utf8
[mysql]
default-character-set=utf8
EOF
docker run --restart=always -p 3306:3306 --name mysql5.7 -v /usr/data/mysql/conf:/etc/mysql -v /usr/data/mysql/logs:/var/log/mysql -v /usr/data/mysql/data:/var/lib/mysql -v /usr/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7