docker 部署mysql
1.安装yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
2.为yum源添加docker仓库位置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.下载mysql镜像
docker pull mysql:5.7
4.启动mysql服务
docker run -p 3306:3306 --name mysql\
--privileged=true \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=cy@123,. \
-d mysql:5.7
参数说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
访问 Mysql 服务
进入容器内部
docker exec -it mysql bash
登录mysql
mysql -uroot -pdaodaotest
设置mysql远程允许访问
设置
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'daodaotest' WITH GRANT OPTION;
刷新配置
FLUSH PRIVILEGES;
mysql登录不了情况说明
密码不要设置@,无法再容器内部登录
修改密码办法,
1.修改配置文件my.cnf,在[mysqld]下加入以下代码
skip-grant-tables
2.重启容器
docker restart mysql
3.进入容器内部
docker exec -it 容器ID /bin/bash
4.登录mysql 输入命令
mysql -uroot
5.修改root密码
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> update mysql.user set authentication_string = password("root1234") where user="root";
Query OK, 2 rows affected, 1 warning (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 1
mysql> exit
6.将my.cd文件中的配置去除
7.重启容器