在本地做测试使用需要用到数据库时,docker安装数据库可以节省很多配置的时间,也便于管理。
之前写过deepin-通过docker安装oracle并新建用户,今天补一篇docker安装mysql的记录,跟oracle比起来,就简单很多了。
查找mysql最新版镜像
docker search mysql
或者去官网查找更直观一些:https://hub.docker.com/_/mysql/
拉取镜像
docker pull mysql
这样不指定版本是默认拉取的最新版,大概有545M左右的大小。
创建容器
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
说明:
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码为"root"。
如此,mysql容器就运行成功了,可以使用docker ps检查是否运行成功
授权
进入容器:
docker exec -it mymysql /bin/bash
进入mysql:
mysql -uroot -p
授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';
刷新权限:
mysql> flush privileges;
设置密码永不过期:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
刷新权限:
mysql> flush privileges;
使用dbweaver连接默认库
mysql默认数据库有下面几个:information_schema,mysql,performance_schema,sys
mysql默认数据库
用dbweaver连接其中的mysql数据库名,用户名root,密码为上面设置的root,端口是3306
mysql连接库
创建数据库
登录mysql库之后,可以通过运行create database xxx(库名); 来创建自己的库。
这样就可以愉快的使用mysql了。
网友评论