centos7中配置mysql的docker容器
一、新建MySQL5容器
1、mysql镜像
- 方式一:
docker pull mysql:5.7
- 方式二:
使用BT面板或者portainer的docker管理器拉取镜像
- 查看镜像
[root@iZwz9b3eh8po9pclw9gi5cZ data]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/xql19218/centos_django1 v1 050365746566 15 hours ago 542 MB docker.io/portainer/portainer latest 19d07168491a 9 days ago 74.1 MB docker.io/mysql 5.7 ee7cbd482336 9 days ago 372 MB
2、创建mysql容器
- 方式一:
使用命令创建
docker run -p 8080:3306 --name mymysql57 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql:5.7
说明:
--name mymysql57:容器名字 -p 8080:3306:将容器的3306端口映射到主机的8080端口 -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码 --lower_case_table_names=1 设置表名参数名等忽略大小写 -v /etc/localtime:/etc/localtime:ro 设置容器的时间与宿主机同步
- 方式二:
使用docker管理器创建
- 查看容器
[root@iZwz9b3eh8po9pclw9gi5cZ data]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 179892b67bbd docker.io/mysql:5.7 "docker-entrypoint..." 14 seconds ago Up 13 seconds 33060/tcp, 0.0.0.0:8080->3306/tcp mymysql57
3、使用Navicat等工具连接测试
输入IP地址账号密码的连接成功则表示创建成功
注意:需要开放相关端口,远程连接端口为宿主机端口(8080),否则连接失败
二、 配置mysql
1、进入mysql容器
data]# docker exec -it 1798 bash root@179892b67bbd:/#
2、重置root密码
- 进入mysql
root@179892b67bbd:/# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.25 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
- 修改root密码
mysql> SET PASSWORD = PASSWORD('12345678'); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql>
原始密码:123456
修改后密码:12345678
- 退出使用新密码登录
mysql> quit; Bye root@179892b67bbd:/# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.25 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
3、设置远程连接密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.00 sec)
密码是:12345678
- 使用使用新密码在Navicat远程连接成功
继续阅读(剩余50%