环境

环境

版本

Idea

2020.1

Docker

20.10.2

Cent OS

8

VMware Workstation Pro

15

Mysql

8

Navicat

15

部署

拉取镜像

[admin@bogon ~]$ docker pull mysql:8
或者
[admin@bogon ~]$ docker pull mysql:latest

拉取完成后检查是否成功

[admin@bogon ~]$ docker images

docker部署MoviePilot_mysql

创建数据目录

创建时可能会提示权限不足(mkdir: 无法创建目录 ''/etc/mysql/test/'': 权限不够),需要在命令前加sudo

[admin@bogon ~]$ mkdir /etc/mysql/test /etc/mysql/test/data

验证是否创建成功

[admin@bogon ~]$ ls -l /etc/mysql/test/data/
总用量 0

如果创建失败会提示''ls: 无法访问'/etc/mysql/test/data/': 没有那个文件或目录'' 

构建镜像

以下命令行和idea docker image方式二选一即可

命令行

[admin@bogon ~]$ docker run -p 3306:3306 -v /etc/mysql/test/data:/var/lib/mysql
--env MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8 --lower_case_table_names=1

Idea Docker Image

docker部署MoviePilot_docker_02

docker部署MoviePilot_linux_03

 将红框所示填完点击apply即可

docker部署MoviePilot_数据库_04

运行docker image 

docker部署MoviePilot_docker部署MoviePilot_05

构建容器

docker部署MoviePilot_linux_06

配置远程连接

启动mysql容器

[admin@bogon ~]$ docker start mysql

进入mysql容器

[admin@bogon ~]$ docker exec -it mysql bash

登录mysql

root@8a4dc1b408c1:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.25 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

权限信息存储在 mysql 系统库的 user、db、tables_priv、columns_priv、procs_priv 这几个系统表中。

  • user 表:存放用户账户信息以及全局级别(所有数据库)权限。
  • db 表:存放数据库级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库。
  • tables_priv 表:存放表级别的权限,决定了来自哪些主机的哪些用户可以访问数据库的这个表。
  • columns_priv 表:存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的这个字段。
  • procs_priv 表:存放存储过程和函数级别的权限。

选择mysql数据库

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

查询root账户

mysql> select Host,User from user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

创建用户

此处用户名(root)密码(123456)改为自己的

mysql> create User 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

授予权限

# GRANT命令说明:

ALL 表示具体要授予所有权限。

ON 用来指定权限针对哪些库和表。

*.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。

TO 表示将权限赋予某个用户。

'root'@'%' 表示root用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。

mysql> grant ALL on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

查看权限

mysql> show grants for 'root'@'%';
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%`                                                                                                                                                                                                                    |
| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`%` |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

重启mysql

不关闭docker容器退出容器方法:Ctrl + p + q

mysql> exit
Bye
root@8a4dc1b408c1:/# read escape sequence
[admin@bogon ~]$ docker restart mysql
mysql

 防火墙端口

查看已开启防火墙端口

[admin@bogon ~]$ firewall-cmd --list-all

若没有3306则需要开启

[admin@bogon ~]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent;

 重启防火墙

[admin@bogon ~]$ systemctl restart firewalld.service

远程连接 

打开Navicat,新建mysql连接,主机为limux ip地址,本例为虚拟机ip,端口3306,用户名 root   密码 123456(测试教程比较随意,正式环境需谨慎)

docker部署MoviePilot_linux_07

docker部署MoviePilot_docker部署MoviePilot_08