简介
随着容器技术的流行,使用Docker容器来运行MySQL已经成为许多开发者和运维人员的首选。本指南将详细介绍如何在CentOS 7和Red Hat系统下使用Docker安装MySQL镜像,并对MySQL进行基础安全配置。
安装Docker
首先,确保您的系统已经安装了Docker。如果没有安装,可以按照以下步骤进行安装:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
安装MySQL镜像
使用以下命令从Docker Hub拉取MySQL镜像:
sudo docker pull mysql
创建MySQL容器
创建一个名为mysql的容器,并使用以下命令启动:
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql
这里的-e MYSQL_ROOT_PASSWORD=rootpassword参数设置了MySQL的root用户的密码,请替换为您的实际密码。
访问MySQL
要访问MySQL容器,可以使用以下命令:
sudo docker exec -it mysql mysql -u root -p
输入root密码,然后就可以进入MySQL的shell进行操作了。
基础安全配置
1. 配置文件修改
Docker运行时,MySQL的配置文件位于/etc/mysql/conf.d/目录。可以将配置文件复制到主机上进行修改:
sudo docker cp mysql:/etc/mysql/my.cnf /path/to/my.cnf
修改完配置文件后,将其复制回容器:
sudo docker cp /path/to/my.cnf mysql:/etc/mysql/my.cnf
重启MySQL容器使配置生效:
sudo docker restart mysql
2. 使用字符编码
确保MySQL使用UTF-8字符编码。在my.cnf文件中,找到[mysqld]部分,添加以下内容:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
3. 禁用远程访问
为了提高安全性,可以禁用MySQL的远程访问。在my.cnf文件中,找到[mysqld]部分,添加以下内容:
[mysqld]
bind-address=127.0.0.1
这行代码会使得MySQL只能通过本地连接访问。
4. 更改root用户密码
在第一次登录MySQL时,建议更改root用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
将newpassword替换为您的新密码。
5. 创建新用户
为了提高安全性,建议创建一个新的用户,并授予其必要的权限:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
将newuser和newpassword替换为您的新用户名和密码。
总结
本文详细介绍了如何在CentOS 7和Red Hat系统下使用Docker安装MySQL镜像,并对MySQL进行基础安全配置。通过以上步骤,您将拥有一个安全且易于管理的MySQL环境。