docker_mysql使用

docker_mysql使用:https://hub.docker.com/_/mysql/


docker 部署

1
2
3
4
5
6
7
8
9
10
11
12
$ docker run \
-p 6306:3306 \
--name mymysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d \
mysql:5.6

# window 版
$ docker run -p 6306:3306 --restart=always --name mysql -v /root/docker_data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.16

命令说明:

  • -p 6306:3306:将容器的 3306 端口映射到主机的 6306 端口。
  • -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=123456:初始化 root 用户的密码。
  • 创建新数据及其用户, 增加多几个环境变量
    • -e MYSQL_DATABASE=myblog
    • -e MYSQL_USER=yang
    • -e MYSQL_PASSWORD=xuan

参考


远程访问 8.0版本

1
2
3
4
5
6
> mysql -uroot -paaa # 输入账号 root,密码 aaa 进入数据库.
> use mysql; # 使用数据库
> select host,user,authentication_string, from user; # 在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
+-----------+---------------+-------------------------------------------+ | host | user | authentication_string | +-----------+---------------+-------------------------------------------+ | localhost | root | *36CE420DE12E3703B15899EC4351503084A06AB2 |
...
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; # 授权访问方式

参考


创建数据库及用户

1
2
3
4
> create user 'tom'@'%' identified by '123456'; # 创建角色
> create database gogsdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # 创建数据库
> grant all privileges on gogsdb.* to 'tom'@'%' identified by '123456'; # 授权数据库访问方式
> flush privileges; # 刷新权限

测试链接

1
2
3
root@2223c7921732:/# mysql -utom -p123456 gogsdb;    
mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 104 Server version: 5.7.22 MySQL Community Server (GPL)
...

删除数据库

1
> drop database testdb;

参考


常见问题


参考