docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务
docker 拉取
访问 dockerhub,搜索关键词 mysql
,我这里选择 mysql-server,然后执行拉取命令,注意可以选择tag
版本,默认是latest
。
docker pull mysql/mysql-server:tag
等待拉取完成即可。
docker Mysql-server 启动与配置
docker 部署的优势就在于其快速便捷,下面就进行几项步骤:
启动 docker
该容器命名为mysql8
,将容器端口3306映射到本地端口3306,以便在外部网络能够访问到。
docker run --name=mysql8 -d -p 3306:3306 mysql/mysql-server:latest
查看登录密码
大概等待几秒之后,mysql-server docker 完全启动之后再输入以下命令,否则可能查看不到。
docker logs mysql8 2>&1 | grep GENERATED
# GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
执行 mysql 命令行程序
使用默认用户root,输入刚刚查看的mysql密码,进入 mysql 交互界面。
docker exec -it mysql8 mysql -uroot -p
修改 root 用户密码
初次进入 mysql 交互界面,必须要修改默认密码,之后才能进行其他操作。
必须提及的是,mysql 8.0 以后版本修改密码方式发生变化,这里需要注意。
在 mysql 8.0 以后,修改密码语句如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
在 mysql 5.7 以前,修改密码语句如下:
mysql> SET PASSWORD = PASSWORD('password');
之后可以进行其他操作了
创建数据库
CREATE DATABASE thinkphp;
use thinkphp;
创建表
CREATE TABLE user(
ID int PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255),
email VARCHAR(255),
password VARCHAR(255),
img VARCHAR(512)
);
创建用户,分配权限
创建一个低权限用户,分配新建数据库的操作权限,以实现数据库降权,确保其安全性。
# create user
CREATE USER 'thinkuser'@'%' IDENTIFIED BY 'password';
# grant privileges
GRANT ALL ON thinkphp.* TO 'thinkuser'@'%';
# flush privileges
flush privileges;
访问服务
至此,Mysql server 已搭建完成,可以通过访问主机IP:3306
来访问 Mysql 服务了。