我正在Ubuntu中运行docker,并尝试创建和运行一个MySql容器。我想为数据目录使用挂载的网络共享。我正在尝试下面的docker run命令,但我遇到了权限问题。我怎么解决这个?
root@jarvis:/mnt/wayne/mysql-data$sudo docker run-it-p 3306:3306-e mysql_root_password=admin-v/mnt/wayne/mysql:/var/lib/mysql/--name mysqlserver mysql/mysql-server
[Entrypoint] MySQL Docker Image 8.0.20-1.1.16
[Entrypoint] Initializing database
2020-06-08T21:43:25.253898Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.20) initializing of server in progress as process 22
2020-06-08T21:43:25.281460Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-06-08T21:43:27.815075Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted)
2020-06-08T21:43:29.851875Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem
2020-06-08T21:43:29.852970Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2020-06-08T21:43:29.854806Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-06-08T21:43:31.947298Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20) MySQL Community Server - GPL.
使用CIFs进行网络挂载意味着远程服务器是windows吗?我的回答就是基于这个假设。
最新的mysql docker映像有一个名为mysql的用户,它的uid=27,gid=27您可以通过挂载一个空文件夹作为data_dir来验证这一点。您将看到mysql容器创建的文件的用户和组为27。因此,mysql容器在其data_dir中需要UID/GID(所有者用户id和所有者组id)为27的文件。但是从windows共享挂载的文件具有UID/GID,它属于在Ubuntu中执行mount命令的用户。这是mount命令的默认行为。
要解决这个问题,您需要将“uid=27,gid=27”参数传递给Linux mount命令。
例如:
sudo mount-t cifs-o username=windows-username,uid=27,gid=27//win_share_ip//mnt/wayne
你可以在这里了解更多的细节
我必须说,在网络共享上运行mysql是不太可能的。不会有好的表现。
为了方便使用 windows 共享的目录,最好能直接 mount 进来。 安装 需要安装 cifs-utils: apt-get install cifs-utils 挂载 使用 mount 命令装载: sudo mkdir /mnt/nas/d sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 //192.1
问题内容: 我想将.txt文件拖放到共享网络驱动器上。路径是网络驱动器上的映射,该映射需要凭据(登录名和密码)。我可以使用FileOutputStream传递这些参数吗? 谢谢。 问题答案: 否。请使用java CIFS Client库。您可以通过Java连接远程Windows机器。例子- 谢谢 编辑 :JCIFS仅支持不安全的SMB1协议,并且已经处于维护模式多年。将jcifs- ng 用于Wi
Kubernetes网络模型 IP-per-Pod,每个Pod都拥有一个独立IP地址,Pod内所有容器共享一个网络命名空间 集群内所有Pod都在一个直接连通的扁平网络中,可通过IP直接访问 所有容器之间无需NAT就可以直接互相访问 所有Node和所有容器之间无需NAT就可以直接互相访问 容器自己看到的IP跟其他容器看到的一样 Service cluster IP尽可在集群内部访问,外部请求需要通过
问题内容: 我的机器在端口8080上运行着jboss,我想在网络上共享jboss服务器,以便我使用jbossws- native-4.0.2运行jboss服务,但是我仍然无法访问网络上的jboss服务器,请帮助。 问题答案: 启动jboss(run.sh或run.bat)时使用选项-b 0.0.0.0,这会将端口绑定到所有网络接口。默认值为localhost,这就是为什么您无法通过网络访问服务器的
我已经将NSS 3.12.4配置为在FIPS模式下使用SunPKCS11提供程序与我的java程序一起工作,一切都很好。现在我按照https://blogs.oracle.com/meena/entry/what_s_new_in_nss1中提到的步骤使NSS作为共享数据库工作。 当我在共享数据库模式下配置NSS时,secmod.db文件会按预期替换为pkcs11.txt。但是现在SunPKCS1
本章介绍Kubernetes的网络模型以及常见插件的原理和使用方法,主要包括 Host Network:最简单的网络模型就是让容器共享Host的network namespace,使用宿主机的网络协议栈。这样,不需要额外的配置,容器就可以共享宿主的各种网络资源。 共享容器网络:多个容器共享同一个netns,只需要第一个容器配置网络。比如Kubernetes Pod就是所有容器共享同一个pause容