在Podman上部署mysql
本文主要接受如何通过容器安装mysql,基于CentOS 8,所以使用的是podman,而非Docker,Docker的安装可以参见这篇文章:安装Docker,podman的配置可以参见这篇文章:配置Podman
本文的安装整理自:MySql官网
1 安装
1.1 更新系统
sudo dnf makecache
sudo dnf upgrade
sudo dnf update
1.2 安装mysql 8.0
podman pull mysql/mysql-server:8.0
1.3 查看安装
podman images -a
你应该看到如下内容:
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
1.4 启动实例:
参照上一步获取到的镜像,创建一个实例,我们这里将会实例命名为mysql_devops
,同时,这里在服务器上使用的是13306端口,映射到容器内部的依然是3306端口
1 | podman volume create vo-mysql |
查看效果:
podman ps -a
效果应该如下:
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
一旦启动,会自动生成一个密码,查看密码:
1 | podman logs mysql_devops 2>&1 | grep GENERATED |
应该输出类似如下,如果没有输出,可以等10秒左右:
1 | [Entrypoint] GENERATED ROOT PASSWORD: isegnaximMOJ0KlOhFEx)0Hugut |
用这个密码尝试连接看看:
podman exec -it mysql_devops mysql -uroot -p
至此,mysql构建完毕。
接下来,需要做好授权访问;
2 授权访问:
2.1 root账号仅限本机访问,单独开设管理账号
ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootmysql';
2.2 开设仅限独立应用访问的账号
例如,java应用的应用id是9999,我们就开通java_9999
,密码使用:20190721
create user 'java_9999'@'%' identified by '20190721';
ALTER USER 'java_9999'@'%' IDENTIFIED WITH mysql_native_password BY '20190721';
GRANT ALL PRIVILEGES ON demo_user.* TO 'java_9999'@'%';
flush privileges;
3 备份数据
备份
1 | mysqldump -h地址 -P端口 -u账号 -p密码 数据库名 > /opt/backup.sql |
还原
1 | mysql -h地址 -P端口 -u账号 -p密码 数据库名 < /opt/backup.sql |