关于在linux安装MySQL,我个人推荐使用Dcoker安装,流程比用原生手段安装更简单。
使用Docker之后,安装流程被简化了很多,简单易操作,节省时间也更问题。
正文
如果之前没有安装Docker的,推荐完整流程参考:从安装Docker到打包迁移MySQL的完整指南这篇文档。
先安装一下Docker,这篇文章记录的比较详细。
本文仅截取部署MySQL的部分,主要是用Docker在服务器上部署MySQL的流程。
用Docker部署MySQL
MySQL是一种流行的开源关系数据库管理系统。
在Docker中部署MySQL非常简单。
以下步骤将引导你如何在Docker中运行MySQL容器。
拉取MySQL镜像
为了加速镜像的下载速度,建议使用国内的镜像源。以下是从DaoCloud镜像源拉取MySQL官方镜像的命令:
1 | sudo docker pull daocloud.io/library/mysql:8.0 |
千万千万不要使用下面命令。
1 | sudo docker pull mysql:8.0 |
因为有些服务器禁止连接外网,所以导致你不能从hub拿到镜像下载地址,导致pull失败。
比如政务内网环境,那么此时就只能是如此操作。
运行MySQL容器
使用拉取的MySQL镜像启动一个容器,并将MySQL的3306端口映射到主机的3306端口,以便外部访问。
1 | sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:8.0 |
参数说明
--name mysql-container
:指定容器名称为mysql-container
。-e MYSQL_ROOT_PASSWORD=my-secret-pw
:设置MySQL的root
用户密码为my-secret-pw
。-p 3306:3306
:将容器内的3306端口映射到主机的3306端口。-d mysql:8.0
:在后台运行MySQL 8.0镜像。
配置MySQL允许远程访问
进入MySQL容器,允许root
用户从任意主机访问数据库。
1 | sudo docker exec -it mysql-container mysql -uroot -p |
在MySQL命令行中,运行以下命令:
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw'; |
如果你希望创建一个新用户以用于远程访问,可以运行以下命令:
1 | CREATE USER 'newuser'@'%' IDENTIFIED BY 'userpassword'; |
配置my.cnf
记得在目录/var/lib/docker/volumes/mysql-data/_data/
中,添加一个my.cnf
my.cnf
的文件,输入如下内容即可。
1 | [mysqld] |
防火墙配置(如适用)
如果你的服务器有防火墙,需要确保3306端口对外开放。
1 | sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent |
当然,这是用命令的方式,如果你使用的是腾讯云或者阿里云这种云服务器,是有端口配置的协议的。
有这种云服务器,这种事情就简单很多了。
你可以直接在防火墙的配置中,打开端口配置,把3306的端口打开就可以。
结语
这个流程还不完整,我可能测试的还不够完整,所以文档中应该有所缺漏。
不过,只要学习独立开发,后续必然还会再其他云服务器上部署项目,这个流程应该会被持续完善。
后续持续完善该部署流程,也欢迎大家提意见。